我的数据库中有两个表,我想查找存在于第一个表中但不存在于第二个表中的所有记录。然后我想将第一个表中的 id 和名称(但不是其余字段)复制到第二个表中,并为第二个表中的第三列设置一个值。我正在使用它来获取记录:
SELECT table1.* FROM table1 WHERE NOT EXISTS (SELECT * FROM table2 WHERE
table2.id = table1.id)
但我不确定 INSERT 命令的语法是否正确。我想它会开始
INSERT INTO table2 [id,name]
但是在那之后我要指定什么?
最佳答案
像这样:
INSERT INTO table2 (col1, col2, col3) VALUES (1, 2, 3);
如果你从选择中插入,它看起来像这样:
INSERT INTO table2 (id, name, thirdCol)
SELECT (table1.id, table1.name, 'Whatever value') FROM table1
WHERE NOT EXISTS (SELECT id FROM table2 WHERE table2.id = table1.id);
关于mysql - 插入...仅选择一些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13434315/