我有items
列表屬於orders
。每個item
都有fee_percentage
字段。並且items
的總和是total_price
在orders
表中。如何更新最終關聯記錄
我想實現什麼? 我想更新上次關聯項目的fee
字段。
_________________________ __________________________________________
| order ID | total_price| | id | order_id | fee_percentage | fee |
------------------------- ------------------------------------------
| 334 | 425 | | 1 | 334 | 50 | 212 |
# The `fee` should be 213 => | 2 | 334 | 50 | 212 |
正如你所看到的items
總和將是424我想剩下的費用添加到最後一個項目fee
。 (所以物品id 2的費用應該是213)。
請幫忙嗎?
這是我寫到目前爲止
UPDATE items AS i
LEFT JOIN orders AS o ON o.order_id = b.order_id
LEFT JOIN (
SELECT order_id, SUM(fee) AS sum_fee
FROM items
GROUP BY order_id
WHERE deleted = 0
) AS b1 ON b1.order_id = b.order_id
SET b.fee = b.fee + (o.total_price - b1.sum_fee)
WHERE b.deleted = 0;
我試圖將其附加先前查詢或更新的訂單記錄last_item_id,但它不工作。
LEFT JOIN (
SELECT order_id, MAX(id) AS b_last_item_id
FROM items
WHERE deleted = 0
GROUP BY order_id
) AS b1 ON b1.order_id = b.order_id
請參閱http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very -simple-sql-query – Strawberry