2011-09-09 137 views
1

我需要幫助將從table1中選擇的幾列插入到另一個table2(帶有WHERE子句)。我想要插入的列在兩個表中都是相同的。但是,每個表都有其他列不在另一個表中。例如,table2有一個名爲'neighborhood'的列,它不在table1中。我想從table1中獲取nid,ccn,reportdatetime,latitude,longitude,event_type,並將其放在table2中,並且此新行的「鄰居」列應該爲空。INSERT INTO SELECT不起作用

這是我的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 

如何得到這個工作有什麼建議?

回答

14

名稱你插入的列:

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

這將導致空值被插入到沒有被明確命名

+0

這應該是解決方案列。問題是table2列與table1有不同的列數,因此它拋出了該異常。 通過使用上述查詢,您迫使列計數相等。 – Magnum

+1

@Magnum你錯了。無論列表2中有多少列,只要未命名的列可以爲空,此查詢就可以工作。 – Bohemian

+0

@波希米亞,非常感謝您的幫助。有效!我忘記了括號中的那一點。週末愉快。 – Laxmidi