ホームページ >データベース >mysql チュートリアル >LEFT JOIN を使用して複数の MySQL テーブルを更新するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。