将缺失的ID和价格从一个表复制到另一个表

时间:2016-12-07 07:56:34

标签: mysql

我的table A包含1800条记录,table B包含800条记录。我想将table A的遗失ID +价格复制到table B

两个表都有不同的列。常用列为ID

我已经开始构建查询,但我无法弄清楚的是如何判断只复制哪些列。

到目前为止,我有这个

INSERT INTO productprice
SELECT products.productID, products.rrp FROM products
LEFT OUTER JOIN productprice ON productprice.productID = products.productID
WHERE productprice.productID IS NULL;

问题还有我要复制的第二列值是rrptable Apricetable B的列products.productID。基本上是:

products.rrpproductprice.productID - > productprice.price和{{1}}

2 个答案:

答案 0 :(得分:1)

此查询应该有效

INSERT INTO productprice (productID, price)
SELECT productID, rrp
FROM products
WHERE (productID, rrp) NOT IN 
   (SELECT productID, price
    FROM productprice);

以下是演示:SQL Fiddle

答案 1 :(得分:1)

这应该有效:

INSERT INTO productprice(id,rrp) SELECT products.productID, products.rrp FROM products LEFT OUTER JOIN productprice ON productprice.productID = products.productID WHERE productprice.productID IS NULL;

通过在insert语句中指定列。现在,如果表中有其他一些必需的列,这将无效。