2013-09-26 39 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) 
相关问题