mysql - 插入...仅选择一些字段

标签 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]

但是在那之后我要指定什么?

最佳答案

像这样:

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/

相关文章:

mysql - 从 Visual FoxPro 表更新 MySql 表时出现问题

mysql - 建议最佳查询性能 (MySQL)

php - 从每个对话 sql 中获取最后一条消息

c# - Select * From 表Where 列Like 语句c#

php - mysql从某些类别中选择一条记录,对于其余类别,此规则不受影响

mysql - 错误插入日期mysql vb.net

php - 如何确保在日期更改时从 shoutcast 历史记录中插入歌曲历史数据库而不重复?

mysql - 多项 IN 运算符 AKA 在 MySQL 中设置交集

mysql - 使用 MySQL 3 个表中的数据查找总行数

php - 如何将mysql获取的数据再次插入数据库表中