0

2つのテーブルスキーマが同一ではないため、2列のみを使用してテーブルから別のテーブルに行をコピーしようとすると、このエラーが発生します

オペランドには1つの列が含まれている必要があります

私の声明の何が問題になっていますか?

 Insert table1 ( screenname,list_id )
  Select screenname,list_id
 From table2 As T1
 Where Not Exists    (
                Select 1
                From table1 As T2
                Where 
               (T2.screenname = T1.screenname,T2.list_id = T1.list_id)
                )
4

5 に答える 5

2

where条件をからに変更してみて(T2.screenname = T1.screenname,T2.list_id = T1.list_id)ください(T2.screenname = T1.screenname AND T2.list_id = T1.list_id)

(コンマの代わりにANDキーワードに注意してください)

于 2012-07-31T11:28:21.747 に答える
1

INSERT INTO ... ON DUPLICATE KEY構文を試しましたか?

ここでMySQLのマニュアルを参照してください

于 2012-07-31T11:27:47.477 に答える
1

table1のscreenname列とlist_id列に一意のインデックスを作成できます。次に、次のステートメントを使用します。

無視をtable1(screenname、list_id)に挿入します。selectscreenname、list_id From table2 As T1

于 2012-07-31T11:30:18.193 に答える
0

このクエリも試してください-

INSERT INTO table1 (screenname, list_id)
  SELECT screenname, list_id FROM table2 t2
    LEFT JOIN table1 t1
      ON t1.screenname = t2.screenname AND t1.list_id = t2.list_id
  WHERE
    t1.screenname IS NULL AND t1.list_id IS NULL;
于 2012-07-31T11:37:11.983 に答える
0

単純なINSERTIGNOREを使用する

INSERT table1 (screenname, list_id) SELECT screenname, list_id FROM table2
于 2018-07-02T09:12:51.853 に答える