2011-09-09 12 views
1

table1からいくつかの選択された列を別のtable2に挿入するのに役立つ必要があります(WHERE句を使用)。挿入したい列は、両​​方の表で同じです。ただし、各表には、他の表にない他の列があります。たとえば、table2には 'neighborhood'という列があり、table1にはありません。私は、table1からnid、ccn、reportdatetime、latitude、longitude、event_typeを取得してtable2に入れたいと思います。この新しい行の 'neighborhood'列はnullにする必要があります。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あなたは間違っています。このクエリは、名前のない列がNULL可能である限り、table2にいくつの列があっても機能します。 – Bohemian

+0

@ボヘミアン、ありがとうございました。出来た!私はカッコ内のビットを忘れてしまった。良い週末を。 – Laxmidi

関連する問題