1

私は次のような2つのテーブルを持っています:

表1:

|A|B|C|D|E|F|G|H|I|J|

表 2:

|A|C|D|E|G|H|J|K|L|M|N|O|P|

テーブル 2 からテーブル 1 にいくつかの列をコピーする必要があります。

INSERT INTO `table 1` (`C`,`D`,`E`,`G`,`J`)
     SELECT `C`,`D`,`E`,`G`,`J` FROM `table 2` WHERE 
     `table 1`.`A` = `table 2`.`A`;

しかし、それは結果:

#1054 - Unknown column 'table 1.A' in 'where clause'

エラーはどこですか?誰かが私を助けることができますか?

私のエラーは、新しい行を挿入する必要はありませんが、列 A に一致する行を更新することです...どのようにクエリを編集する必要がありますか? ありがとう!

4

2 に答える 2

6

これを試して::

INSERT INTO `table1` (`C`,`D`,`E`,`G`,`J`) VALUES
     (SELECT `C`,`D`,`E`,`G`,`J` FROM `table2` WHERE 
     `table1`.`A` = `table2`.`A`);

編集::

更新のみが必要な場合::

    update table1 
    inner join table2 on table1.A = table2.A
    set 
    table1.C=table2.C, 
    table1.D=table2.D,
    table1.E=table2.E, 
    table1.G=table2.G,
    table1.J=table2.J
    WHERE 1=1
    ;
于 2012-07-17T07:36:49.770 に答える
2
INSERT INTO `table 1` (`A`,`C`,`D`,`E`,`G`,`J`)
SELECT `t2`.`A`, `t2`.`C`, `t2`.`D`, `t2`.`E`, `t2`.`G`, `t2`.`J`
FROM `table 2` AS t2
INNER JOIN `table 1` AS t1
ON `t2`.`A` = `t1`.`A`
ON DUPLICATE KEY UPDATE `C` = VALUES(`C`), `D` = VALUES(`D`), `E` = VALUES(`E`), `G` = VALUES(`G`), `J` = VALUES(`J`)

指定されたクエリに JOIN が表示されません。

重複キーの更新について

于 2012-07-17T07:44:46.613 に答える