【问题标题】:insert... select with only some fields插入...仅选择某些字段
【发布时间】:2012-11-17 20:04:34
【问题描述】:

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

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

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

INSERT INTO table2 [id,name]

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

【问题讨论】:

    标签: mysql select insert


    【解决方案1】:

    像这样:

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

    【讨论】:

    • 我收到一个错误:语法错误,第 6 行 [file.php] 中出现意外 T_STRING。除了将第 3 列的值指定为字符串之外,我还需要做些什么吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多