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

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

Susan Sarandon
Susan Sarandonオリジナル
2024-12-15 13:33:26942ブラウズ

How to Update Multiple MySQL Tables Using a LEFT JOIN?

MySQL の LEFT JOIN を使用した複数のテーブルの更新

質問:

どうすれば更新できますか複数のテーブル間で LEFT JOIN を使用するテーブル内のフィールド?次の LEFT JOIN クエリから結果セット内のすべての行を更新するシナリオを考えてみましょう:

SELECT T1.* FROM T1 LEFT JOIN T2 ON T1.id = T2.id WHERE T2.id IS NULL

答え:

MySQL では UPDATE を実行できます。 LEFT JOIN など、SELECT ステートメントでサポートされている任意の結合タイプを使用するステートメント。適切な構文は次のとおりです。

UPDATE  t1
LEFT JOIN
        t2
ON      t2.id = t1.id
SET     t1.col1 = newvalue
WHERE   t2.id IS NULL

SELECT ステートメントのパフォーマンスを向上させるには、NOT IN / NOT EXISTS 構文の使用を検討してください。

SELECT  t1.*
FROM    t1
WHERE   t1.id NOT IN
        (
        SELECT  id
        FROM    t2
        )

パフォーマンスの詳細については、を参照してください。この記事: 不完全な注文の検索: NOT IN と比較した LEFT JOIN のパフォーマンス。

ただし、MySQL UPDATE ステートメント内のサブクエリでのターゲット テーブルの使用はサポートされていません。したがって、複数のテーブルを含む更新では、効率の悪い LEFT JOIN 構文に依存する必要があります。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。