mysql的更新与表连接 - 更新一个表与其他表的字段
的总和场我有两个表Orders
和Order_Details
Order_Details
表的order_id
场作为外键Orders
表的id_order
表。mysql的更新与表连接 - 更新一个表与其他表的字段
我想更新price_total
字段的Orders
表格,其中表格的价格总和为Order_Details
。
我试着用下面的查询,但失败: -
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
谢谢我今天也在努力处理子查询方法。 :)无论如何,请回答您是否可以更正加入和分组方法。 – 2010-11-18 07:46:28
仍然收到相同的错误'#1064 - 你的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,以便在第6行'GROUP BY Order_Details.id_order'附近使用正确的语法。 – 2010-11-18 10:44:52
@sandeepan - group by不能与更新一起使用,对于错误信息抱歉 – ajreal 2010-11-18 10:58:09
你没有speciy其列订单链接Order_Details.id_order – ajreal 2010-11-18 07:22:12
@ajreal - 'Order_Details'表的'order_id'字段充当'Orders'表的'id_order'表的外键。在排队中应用更正 – 2010-11-18 07:25:33