複数の結合を使用して MySQL のテーブルを効率的に更新するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-24 07:19:14
オリジナル
152 人が閲覧しました

How to Efficiently Update a Table in MySQL Using Multiple Joins?

MySQL での複数の結合を伴うテーブルの更新

複数の結合を伴う複雑なデータベース クエリを操作する場合、特定のテーブルを更新すると問題が発生する可能性があります。結合の順序はパフォーマンスに大きな影響を与えないかもしれませんが、クエリの書き込みと読み取りのしやすさに影響を与える可能性があります。

目的は tableB テーブルを更新することである次の例を考えてみましょう。

UPDATE b
FROM tableA a
JOIN tableB b
   ON a.a_id = b.a_id
JOIN tableC c
   ON b.b_id = c.b_id
SET b.val = a.val+c.val
WHERE a.val > 10
    AND c.val > 10;
ログイン後にコピー

上記のクエリでは、テーブル B の更新には、結合を通じてテーブル tableA と tableC が含まれます。ただし、tableB は FROM 句で指定される最初のテーブルではありません。

Microsoft SQL Server とは異なり、MySQL は複数テーブルの更新を異なる方法で処理します。 UPDATE 構文では、更新するテーブルを明示的に指定する必要はありません。代わりに、SET 句は、新しい値が割り当てられているカラムを含むテーブルを暗黙的に更新します。

MySQL 構文を使用して目的の更新を実現するには、クエリを次のように変更します。

UPDATE tableA a
JOIN tableB b
   ON a.a_id = b.a_id
JOIN tableC c
   ON b.b_id = c.b_id
SET b.val = a.val + c.val
WHERE a.val > 10
    AND c.val > 10;
ログイン後にコピー

MySQL の UPDATEこの構文を使用すると、SET 句の列名を使用して、FROM 句の最初のテーブルではないテーブルを更新できます。

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

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