【发布时间】:2012-09-15 02:32:44
【问题描述】:
我有两张桌子:
ITEMS 带有数量和单价(id | name | order_id | qt | unit_price)
和表ORDERS。
我想UPDATE 表orders 并在orders.total_price sum of multiplications qt*unit_price 放置相同的订单以获得订单的总价。
对 items 表的 SELECT 查询非常简单,并且可以很好地为同一 order_id 中的所有项目提供总和:
SELECT SUM(items.qt*items.unit_price) from items GROUP by items.order_id
但是我不能在我的ORDERS 表中插入这个值。我无法完成这项工作:
UPDATE orders, items SET orders.total_price = (SELECT SUM(items.qt*items.unit_price)
FROM items GROUP BY items.order_id) WHERE orders.id = items.order_id
它返回"Subquery returns more than 1 row"
我发现了一个非常相似的问题here,但答案对我也不起作用:
UPDATE orders SET orders.t_price = (SELECT SUM(items.qt*items.unit_price) from items WHERE orders.id = items.order_id)
【问题讨论】:
-
请显示您的完整查询,例如 mysql_query("query")
-
我现在在 phpmyadmin 中这样做,所以上面的第二个查询是我尝试的实际查询:“UPDATE orders, items SET orders.total_price = (SELECT SUM(items.qt*items.unit_price) FROM items GROUP BY items.order_id) WHERE orders.id = items.order_id"
标签: mysql sql join sql-update