簡體   English   中英

如何從第一個表到其他兩個表更新記錄?

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

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