【问题标题】:INSERT INTO SELECT not working插入选择不工作
【发布时间】:2011-11-14 04:20:57
【问题描述】:

我需要帮助将几个选定的列从 table1 插入另一个 table2(使用 WHERE 子句)。我要插入的列在两个表中是相同的。但是,每个表都有其他表中没有的列。例如,table2 有一个名为“neighborhood”的列,它不在 table1 中。我想从table1中抓取nid、ccn、reportdatetime、latitude、longitude、event_type并放到table2中,这个新行的'neighborhood'列应该为null。

这是我的 MySQL:

INSERT INTO table2 
SELECT nid, ccn, reportdatetime, latitude, longitude, event_type 
FROM table1 
WHERE nid=943662

我收到此错误:

#1136 - Column count doesn't match value count at row 1

关于如何让它工作的任何建议?

【问题讨论】:

    标签: mysql sql select insert-into


    【解决方案1】:

    为要插入的列命名:

    INSERT INTO table2 (nid, ccn, reportdatetime, latitude, longitude, event_type) 
    SELECT nid, ccn, reportdatetime, latitude, longitude, event_type 
    FROM table1 
    WHERE nid=943662;
    

    这将导致空值被插入到未明确命名的列中

    【讨论】:

    • 这应该是解决方案。问题是 table2 列的列数与 table1 不同,因此它抛出了该异常。通过使用上述查询,您强制列数相等。
    • @Magnum 你错了。无论 table2 中有多少列,只要未命名的列可以为空,此查询都将起作用。
    • @Bohemian,非常感谢您的帮助。有效!我忘记了括号中的内容。周末愉快。
    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 2012-07-01
    • 2012-02-29
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    相关资源
    最近更新 更多