ホームページ > データベース > mysql チュートリアル > SQL で別のテーブルの値の合計を使用してテーブルを更新するにはどうすればよいですか?

SQL で別のテーブルの値の合計を使用してテーブルを更新するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-18 02:37:14
オリジナル
224 人が閲覧しました

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
ログイン後にコピー

このクエリは直感的ですが、 2 つの重要な制約により失敗します。SET は SUM のような集計関数をサポートせず、GROUP BY は UPDATE では許可されません。

この問題を解決するには、サブクエリを利用して集計合計を計算し、更新された値を 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 として保存され、共通列 field3 を使用して table1 に結合されます。
  • JOIN 条件により、table2 の SUM 値が正しい値に割り当てられるようになります。 table1 の対応する行。

このアプローチを採用すると、SQL で集計更新を正常に実行し、目的のデータ操作を実現できます。結果。

以上がSQL で別のテーブルの値の合計を使用してテーブルを更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート