简体   繁体   English

使用表连接的Mysql更新 - 使用其他表的字段的总和更新一个表的字段

[英]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. 我有两个表OrdersOrder_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM