【问题标题】:How can I INSERT new values and values from an already existing table?如何从现有表中插入新值和值?
【发布时间】:2020-12-25 00:28:10
【问题描述】:

我目前正在学习 MySQL,已经学习了 INSERTO INTO 语句和 INSERT INTO SELECT 语句。

INSERT INTO 语句的工作方式如下:

INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);

虽然 INSERT INTO SELECT 的工作方式如下:

INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;

我要做的是添加新值,同时添加我已经存储在另一个表中的值。

con.query("INSERT INTO vehicles (vehicleType, vehicleModel, vehicleOwner, vehicleSpawnX, vehicleSpawnY, vehicleSpawnZ)")

从上面的查询中,我已经将 vehicleOwner 值存储在另一个表中,而我刚刚获得的其他值。 我怎样才能做到这一点?在 SELECT 之前添加一个 VALUES 语句? 我正在使用 SQL Workbench 8.0 和 JavaScript。此外,所有值都不是 NULL,因此我不能进行两个不同的查询,除非在第一个查询中添加临时值,然后在第二个查询中更新。

我要替换的内容:

  • vehicleType -> “玩家”
  • vehicleModel -> vehicleCreate.model
  • vehicleOwner -> playerID 来自玩家表
  • vehicleSpawnX -> pos.x
  • vehicleSpawnY -> pos.y
  • vehicleSpawnZ -> pos.z

谢谢!

【问题讨论】:

  • 您可以使用SELECT vehicleOwner, 'car' AS vehicleType FROM otherTable 等等 - 如果您在INSERT 中指定列名,您也可以取消AS vehicleType 并依赖该列在选择中的位置结果。
  • 这里的pos 是什么? vehicleCreate.model 是静态的吗?
  • 在 SQL 客户端中独立尝试这种类型的 SELECT 以查看其行为:SELECT 'hello'SELECT 'hello' AS abcSELECT 'hello' AS abc, 'world' AS xyzSELECT realColumn1, realColumn2, realColumn3 AS newName, 'hello' AS abc, 'world' AS xyz FROM realTable(最后一个示例需要一个表 realTable至少有realColumn1realColumn2realColumn3 的列)
  • @aRvi 是玩家位置,一个整数。不知道是不是静态的
  • 这很令人困惑@CherryDT,但我会尝试这样做

标签: javascript mysql sql node.js


【解决方案1】:

不可能...但是您可以选择数据并将其存储在变量中,然后将其存储在另一个表中

【讨论】:

  • 我想我会这样做的。谢谢。
  • 实际上有可能,正如我所描述的。
【解决方案2】:

您将构建一个查询。您的数据模型有点难以遵循,因为您没有提供数据示例或您真正想做的事情。

所以让我举一个更简单的例子。比如说,您有一个包含两个玩家的两列的表,并且您想将 ids 放入一个表中 - 但使用他们的名字。查询如下所示:

insert into pairs (playerId1, playerId2)
    select p1.playerId, p2.playerId
    from players p1 join
         players p2
         on p1.name = ? and p2.name = ?;

? 用于参数占位符。我假设您知道在将值传递给查询时离开使用参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 1970-01-01
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    相关资源
    最近更新 更多