2016-12-07 68 views
0

我有table A包含1800個記錄和table B包含800個記錄。我想將缺少的ID +價格從table A複製到table B將缺少的ID和價格從一個表複製到另一個表

這兩個表都有不同的列。常見列是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 Apricetable B。基本上是:

products.productIDproducts.rrp - >productprice.productIDproductprice.price

回答

1

這個查詢應該工作

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

以下是演示:SQL Fiddle

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; 

通過指定插入語句中的列。現在,如果表中還有一些其他必需的列,那麼這種方法就不適用

相關問題