[英]Mysql Update with table joins - update one table's field with sum of other table's field
I have two tables Orders
and Order_Details
Order_Details
tables's order_id
field acts as foreign key to Orders
table's id_order
table. 我有两个表
Orders
和Order_Details
Order_Details
表的order_id
字段充当外键Orders
表的id_order
表。
I want to update the price_total
field of Orders
table with summation of prices from Order_Details
table. 我想更新
price_total
领域Orders
与价格从求和表Order_Details
表。
I tried with the following query but failed:- 我尝试使用以下查询但失败了: -
Update Orders, Order_Details
SET Orders.price_total = sum(Order_Details.price)
WHERE Orders.price_total=0
GROUP BY Order_Details.id_order
Error - 错误 -
#1064 - 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 'GROUP BY Order_Details.id_order' at line 4
How to do it in one query? 如何在一个查询中执行此操作?
Thanks 谢谢
You can simplify it to 你可以简化它
Update Orders
SET Orders.price_total =
(
SELECT
sum(Order_Details.price)
FROM Order_Details
WHERE
Orders.id_order=Order_Details.order_id
)
WHERE Orders.price_total=0;
updated for grouping
已更新以进行分组
Update Orders, Order_Details SET Orders.price_total = sum(Order_Details.price) WHERE Orders.price_total=0 AND Orders.id_order=Order_Details.order_id GROUP BY Order_Details.id_order
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.