使用表联接更新Mysql-更新一个表';s字段与其他表的总和';s场

使用表联接更新Mysql-更新一个表';s字段与其他表的总和';s场,mysql,join,group-by,sum,Mysql,Join,Group By,Sum,我有两个表Orders和Order\u Details Order\u Detailstables的Order\u id字段充当Orderstable的id\u Ordertable的外键 我想用Order\u Details表的价格总和更新Order\u total表的price\u字段 我尝试了以下查询,但失败:- Update Orders, Order_Details SET Orders.price_total = sum(Order_Details.price) WHERE

我有两个表
Orders
Order\u Details
Order\u Details
tables的
Order\u id
字段充当
Orders
table的
id\u Order
table的外键

我想用
Order\u Details
表的价格总和更新
Order\u total
表的
price\u字段

我尝试了以下查询,但失败:-

Update Orders, Order_Details
  SET  Orders.price_total = sum(Order_Details.price)
 WHERE Orders.price_total=0
 GROUP BY Order_Details.id_order
错误-

#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
如何在一个查询中完成


谢谢

您可以将其简化为

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;
已更新以进行分组

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

您可以将其简化为

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;
已更新以进行分组

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

您没有指定订单中链接到订单\u Details.id的列_order@ajreal-
Order\u Details
tables的
Order\u id
字段充当
Orders
table的
id\u Order
table的外键。在问题中应用了更正您没有指定订单中链接到Order_Details.id的列_order@ajreal-
Order\u Details
tables的
Order\u id
字段充当
Orders
table的
id\u Order
table的外键。在问题中应用更正感谢我今天也在努力使用子查询方法。:)不管怎样,如果你也能纠正连接和分组方法,请回答。仍然得到相同的错误
#1064-你的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解第6行“按顺序分组\u详细信息.id\u顺序”附近使用的正确语法
@sandepan-GROUP BY不能与update一起使用,抱歉信息错误谢谢我今天也在努力使用子查询方法。:)不管怎样,如果你也能纠正连接和分组方法,请回答。仍然得到相同的错误
#1064-你的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解第6行“按顺序分组\u详细信息.id\u顺序”附近使用的正确语法