MySQL 別のテーブルに存在しない行を選択する
共通プライマリを共有しながら、テーブル A には存在するがテーブル B には存在しないすべての行を取得するには
NOT EXISTS を使用したサブクエリの使用:
NOT EXISTS を使用したサブクエリを使用する最初のアプローチは実行可能です。
左結合の使用:
ご覧のとおり、左結合はより高速に実行できます。共有列でテーブル A とテーブル B を結合する場合、テーブル B のどの行とも一致しないテーブル A の行は、結合列に NULL 値を持ちます。これらの NULL 値をフィルター処理すると、目的の行が効果的に分離されます。
コード例:
<code class="sql">SELECT * FROM A LEFT JOIN B ON A.x = B.y WHERE B.y IS NULL;</code>
追加のヒント:
全体的な結論:
通常、左結合方法はサブクエリ アプローチよりも優れていますが、最適な解決策は条件に応じて異なる場合があります。特定のデータセットとスキーマ。それぞれの状況で最も効率的なアプローチを決定するには、実験とパフォーマンス テストを行うことをお勧めします。
以上があるテーブルから別のテーブルに存在しない行を効率的に選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。