【发布时间】: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 abc、SELECT 'hello' AS abc, 'world' AS xyz、SELECT realColumn1, realColumn2, realColumn3 AS newName, 'hello' AS abc, 'world' AS xyz FROM realTable(最后一个示例需要一个表realTable至少有realColumn1、realColumn2和realColumn3的列) -
@aRvi 是玩家位置,一个整数。不知道是不是静态的
-
这很令人困惑@CherryDT,但我会尝试这样做
标签: javascript mysql sql node.js