如何将某些列从表复制到另一个MySQL

Jac*_*rky 1 mysql copy

我有两个表,如:

表格1:

|A|B|C|D|E|F|G|H|I|J|
Run Code Online (Sandbox Code Playgroud)

表2:

|A|C|D|E|G|H|J|K|L|M|N|O|P|
Run Code Online (Sandbox Code Playgroud)

我必须将一些列从表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`;
Run Code Online (Sandbox Code Playgroud)

但结果:

#1054 - Unknown column 'table 1.A' in 'where clause'
Run Code Online (Sandbox Code Playgroud)

错误在哪里?有人能帮我吗?

我的错误是我不必插入新行,而是更新匹配列A的行...必须以哪种方式编辑查询?谢谢!

Sas*_*ant 5

尝试这个::

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

编辑::

如果您只需要更新,则::

    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
    ;
Run Code Online (Sandbox Code Playgroud)