首頁 >資料庫 >mysql教程 >如何使用 SQL 中另一個表的值總和更新表?

如何使用 SQL 中另一個表的值總和更新表?

Linda Hamilton
Linda Hamilton原創
2024-12-18 02:37:14217瀏覽

How Can I Update a Table with the Sum of Values from Another Table in SQL?

在SQL UPDATE 查詢中聚合:簡潔的解決方案

在資料庫操作中,基於聚合函數更新表值可能會帶來挑戰。讓我們探討一種常見場景,其中目標是將一個表中的值設定為另一個表中的值總和。

考慮以下查詢:

UPDATE table1
SET field1 = SUM(table2.field2)
FROM table1
INNER JOIN table2 ON table1.field3 = table2.field3
GROUP BY table1.field3

雖然直觀,但此查詢由於兩個關鍵限制,將會失敗:SET 不支援SUM 之類的聚合函數,並且UPDATE 查詢中不允許GROUP BY。

To解決這個問題,我們可以利用子查詢來計算聚合總和,然後在 UPDATE 查詢中使用更新後的值。

UPDATE t1
SET t1.field1 = t2.field2Sum
FROM table1 t1
INNER JOIN (select field3, sum(field2) as field2Sum from table2 group by field3) as t2
on t2.field3 = t1.field3

在這個精煉查詢中:

  • 子查詢計算 table2.field3 中每個唯一值的聚合總和。
  • 更新後的結果(儲存為 field2Sum)使用連接回 table1公共欄位3。
  • JOIN 條件確保將table2 中的SUM 值指派給table1 中正確的對應行。

透過使用此方法,您可以成功執行聚合更新 SQL 並實現所需的資料操作結果。

以上是如何使用 SQL 中另一個表的值總和更新表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn