将表A到B中的所有行和列插入B中已不存在的

时间:2017-02-14 11:33:14

标签: mysql

我有一个包含以下列的表:

我想将一个表(A)中的所有列和行添加到表(B)中,其中articlenumber(两个表中名为“articlenumber”的列)不是B中的一个文章编号。

我们说:

表A

|articlenumber|OrderNumber|ArticleNumber|PaymentType|Returned?|OrderDate |
|3            |1          |1            |credit     |No       |01.01.2016|
|4            |2          |3            |credit     |No       |30.02.2016|
|5            |1          |2            |cash       |No       |01.01.2016|

表B

|articlenumber|OrderNumber|ArticleNumber|PaymentType|Returned?|OrderDate |
|1            |1          |1            |cash       |Yes      |01.01.2016|
|2            |2          |3            |credit     |No       |30.02.2016|
|3            |1          |1            |credit     |No       |01.01.2016|

预期结果:

|articlenumber|OrderNumber|ArticleNumber|PaymentType|Returned?|OrderDate |
|1            |1          |1            |cash       |Yes      |01.01.2016|
|2            |2          |3            |credit     |No       |30.02.2016|
|3            |1          |1            |credit     |No       |01.01.2016|
|4            |2          |3            |credit     |No       |30.02.2016|
|5            |1          |2            |cash       |No       |01.01.2016|

已经尝试过这个:

INSERT INTO B SELECT * FROM A Where A.articlenumber = B.articlenumber;

但这似乎不正确

我该怎么办?感谢您的支持!

3 个答案:

答案 0 :(得分:1)

((TODAY()-F2)/7)

上应用唯一键

然后

articlenumber

答案 1 :(得分:0)

尝试使用表单

的左外连接
wait_until

答案 2 :(得分:0)

你不必等于(<>)就可以得到这个

INSERT INTO B SELECT A.* FROM A LEFT JOIN B ON A.articlenumber <> B.articlenumber

或者您也可以使用此

    INSERT INTO B SELECT * FROM A 
    WHERE articlenumber NOT IN (SELECT articlenumber FROM B);