簡體   English   中英

使用連接表列的總和值更新mysql表列?

[英]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.priceitem.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM