UPDATE Products
SET TotalQuantity = (CASE WHEN P.DateOfLastUpdate < PurchaseDate
THEN (SUM(P.TotalQuantity) + SUM(M.Quantity))
ELSE P.TotalQuantity END)
FROM Products AS P ,Products_Purchased as M
WHERE P.ProductName = M.ProductName;
我想根据另一个表 Products_Purchased 更新表 Products。如果我向 Products_Purchased 添加新商品,它也必须输入到表 Products 中,并且还应该更新表的 TotalQuantity 字段 产品。此查询有什么问题?
我收到错误消息:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM Products AS P ,Products_Sold as S WHERE P.ProductName = S.ProductName' at line 1
有人可以帮我解决这个问题吗?
最佳答案
我已经解决了你的问题。只要按照我做的做就可以了..
我创建了两个表
create table products(product_name text,total_quantity int,date_of_lastupdate date);
create table products_purchased(product_name text,quantity int,date_of_purchase date);
insert into products values('food',10,'2013-5-6'),('dress',20,'2012-4-7');
insert into products_purchased('food',15,'2012-2-1'),('dress',12,'2013-6-8');
现在我尝试在与您尝试使用以下代码相同的条件下进行更新,并且效果完美。
只要看一下代码,你就会明白我做了什么,它会解决你的问题..
更新产品为a,products_purchased为b集a.total_quantity=
案例
当 a.date_of_lastupdate 时
然后(select * from (select sum(products.total_quantity)+sum(products_purchased.quantity) from products natural join products_purchased)as c)
其他 a.total_quantity
结束
其中a.产品名称=b.产品名称;
关于mysql - 使用另一个表更新一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20210030/