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

如何使用 SQL 使用另一個表格的總和更新表格欄位?

Linda Hamilton
Linda Hamilton原創
2024-12-22 19:23:11607瀏覽

How to Update a Table Field with the Sum from Another Table Using SQL?

使用聚合函數的 SQL 更新查詢

本題探討了 SQL 更新查詢中聚合函數的使用。使用者嘗試使用另一個表中的值的總和來更新表中的欄位。然而,由於語法問題,他們的查詢不起作用。

分析

使用者提出的初始查詢包含兩個主要缺陷:

  1. 混合使用SET 和GROUP BY 子句:SET 不支持GROUP BY,反之反之亦然。
  2. 在 SET 子句中直接使用聚合函數 (SUM):SET 需要單一值,而不是聚合。

要解決這些問題,必須使用子查詢。子查詢將計算第二個表中的值的總和,並按公共欄位分組。然後,該子查詢的結果將與第一個表連接,並用於相應地更新欄位。

正確的查詢:

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

在此查詢中:

  • 子查詢針對field3的每個唯一值計算table2中field2的總和。
  • 外部查詢連接table1 的子查詢結果使用 field3 欄位。
  • table1 的 field1 使用子查詢中計算的 field2Sum 進行更新。

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

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