[英]Update a mysql table column with sum of joined table columns value?
訂單表
Id
OrderDate
Total
物品表
Id
Price
Quantity
OrderId (fkey -> order.Id)
訂單有很多項目。
在mysql SQL中,有沒有辦法更新order.total
,所以它是每個項目的產品item.price
和item.quantity
總和?
那是-
orders.each:
order.items.each:
sum += item.price * item.quantity;
order.total = sum;
我可以為此編寫一個簡單的腳本,但我想學習如何在SQL中執行此操作。
是。 您可以使用update
/ join
執行此操作。 您需要聚合items
以獲得總計,然后將結果返回到orders
以進行更新:
update orders o join
(select i.orderid, sum(i.price * i.quantity) as total
from items i
group by i.orderid
) oi
on o.orderid = oi.orderid
set o.total = oi.total;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.