我的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;
问题还有我要复制的第二列值是rrp
中table A
到price
列table B
的列products.productID
。基本上是:
products.rrp
和productprice.productID
- > productprice.price
和{{1}}
答案 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语句中指定列。现在,如果表中有其他一些必需的列,这将无效。