[英]How to update a record from first table through the other two tables?
我有三個表:
TableA
+-------+--------+--------+
| id_a | name | total |
+-------+--------+--------+
| 1 | Andrew | |
| 2 | Jhon | |
+-------+--------+--------+
TableB
+-------+--------+--------+--------+
| id_b | id_a | amount | id_c |
+-------+--------+--------+--------+
| 1 | 1 | 5 | 1 |
| 2 | 1 | 1 | 2 |
+-------+--------+--------+--------+
TableC
+-------+--------+
| id_c | status |
+-------+--------+
| 1 | 1 |
| 2 | 0 |
+-------+--------+
因此,我需要做的是從TableB中計算ID_a =(1或我發布的ID)且id_c的狀態為1或0的總金額,並將其設置為TableA中的total列,以獲取我在id_a = 1的TableA中的字段total
上方發布的表將包含6
值。
我試圖通過這種方式進入我的查詢:
UPDATE TableA SET total=(SELECT SUM(amount) as sum FROM TableB WHERE id_a = 1 GROUP BY(sum))
但這是錯誤的方式(我認為)。 對此有什么好的查詢?
您可以在內部SELECT
在TableB和TableC之間使用INNER JOIN
。
UPDATE TableA SET
total=(
SELECT SUM(amount) FROM TableB
INNER JOIN TableC ON TableB.id_c = TableC.id_c
WHERE id_a = 1 AND (status = 1 OR status = 0)
GROUP BY id_a
)
WHERE id_a = 1
嘗試這個
UPDATE TableA SET total=(SELECT SUM(amount) FROM TableB WHERE id_a = 1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.