2013-09-26 40 views
0

我試圖根據表B的價格根據產品代碼更新表A中產品的價格。表A中有來自表B的多個值的SQL更新值

表A中約有50,000件產品,但表B中只有200件。 所以我希望表B中的200個價格通過匹配兩個表中的產品代碼來替換表A中那些產品的價格。

任何人都可以告訴我如何去做呢?

+1

哪個是你的數據庫試試這個命令? SQL服務器,oracle,MySql等。 – TechDo

+0

你有沒有嘗試過做什麼? –

+1

我的數據庫在sql server上。 我試圖從網站獲得一些參考,並編輯我的sql語句是這樣的。 UPDATE dbo.Shelflabel_Pricechange_Master SET [單價] =(SELECT T2。[單價] FROM dbo.shelflabel_pricechange T 2,其中dbo.Shelflabel_Pricechange_Master.Plu = t2.PLU) WHERE EXISTS(SELECT 1 FROM dbo.shelflabel_pricechange T2 WHERE dbo.Shelflabel_Pricechange_Master.Plu = t2.PLU) – user2818108

回答

0

您可以使用MS Sql服務器的內連接更新(參考:Update a table using JOIN in SQL Server?)。請嘗試以下查詢:

UPDATE 
TableA 
SET TableA.Price = TableB.Price 
FROM 
TableA, TableB 
WHERE 
TableA.ProductCode = TableB.ProductCode 
+0

是不是最好使用顯式連接語法而不是舊的FROM表,表。只有理由我upvoted @ Nadeem_MK答案。 –

1
UPDATE TableA 
SET  TableA.ProductPrice= TableB.price 
FROM TableA 
INNER JOIN TableB 
ON TableA.productCode = TableB.productCode 
0

在MySQL

update A t 
set cost=(select cost from B where id=t.id) 
where t.id in (select id from B) 
相關問題