在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
在這個精煉查詢中:
透過使用此方法,您可以成功執行聚合更新 SQL 並實現所需的資料操作結果。
以上是如何使用 SQL 中另一個表的值總和更新表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!