2016-12-28 58 views
0

我是学习mysql的新手。我有3列在mysql中更新表中的多行

- id  -price  -url 

storedata表,并有2列

-id  -price -date 

我想用luckyvitamin更新storedata价值luckyvitamin表。

我正在使用下面的查询。请解决我的问题。
谢谢。

update storedata s, luckyvitamin l 
set s.cost = (
    select l1.otcdeal_price 
    from store_data st,luckyvitamin lu 
    where st.id=lu.id 
) 
where s.id=l.id; 

回答

0
UPDATE storedata s 
INNER JOIN luckyvitamin l 
ON s.id = l.id 
SET s.price = l.price 
2

我想你可以使用一个INNER JOIN查询来实现这一点,你不需要任何的子查询,这将使查询本身较慢

UPDATE storedata s 
INNER JOIN luckyvitamin l 
ON s.id = l.id 
SET s.cost = l.otcdeal_pric 
0

你可以这样写:

update storedata s inner join luckyvitamin l on s.id=l.id 
set s.cost= l.otcdeal_price;