Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 插入表A到表B中尚未存在的所有行和列_Mysql - Fatal编程技术网

Mysql 插入表A到表B中尚未存在的所有行和列

Mysql 插入表A到表B中尚未存在的所有行和列,mysql,Mysql,我有一个包含以下列的表: 我想将一个表A中的所有列和行添加到表B中,其中两个表中名为articlenumber的articlenumber列在B中已经不是一个articlenumber了 比如说: 表A |articlenumber|OrderNumber|ArticleNumber|PaymentType|Returned?|OrderDate | |3 |1 |1 |credit |No |01.01.2016

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

我想将一个表A中的所有列和行添加到表B中,其中两个表中名为articlenumber的articlenumber列在B中已经不是一个articlenumber了

比如说:

表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;
但这似乎并不正确

我怎么做?谢谢你的支持

在articlenumber列上应用唯一键

然后


尝试窗体的左外部联接

INSERT INTO B SELECT A.* FROM A LEFT JOIN B ON A.articlenumber = B.articlenumber
WHERE B.articlenumber IS NULL
你不需要平等地得到这样的结果

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

无法在ArticleNumber上应用唯一密钥这是一个可行的解决方案吗?在B中插入SELECT*FROM A,其中articlenumber不在SELECT articlenumber FROM B中;你在使用某种奇怪的区分大小写的MySQL版本吗。通常不可能将相同的名称赋予同一表中的两列。
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);