使用表联接更新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顺序”附近使用的正确语法