insert ...仅选择一些字段

时间:2012-11-17 20:04:34

标签: mysql select insert

我的数据库中有两个表,我想查找第一个表中存在但不存在第二个表的所有记录。然后我想将第一个表中的id和名称(但不是其余字段)复制到第二个表中,并为第二个表中的第三列设置一个值。我用它来获取记录:

SELECT table1.* FROM table1 WHERE NOT EXISTS (SELECT * FROM table2 WHERE
table2.id = table1.id)

但我不确定INSERT命令的正确语法。我想它会开始

INSERT INTO table2 [id,name]

但之后又说明了什么?

1 个答案:

答案 0 :(得分:4)

像这样:

INSERT INTO table2 (col1, col2, col3) VALUES (1, 2, 3);

如果你正在从select中进行插入,它将如下所示:

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);