ホームページ >データベース >mysql チュートリアル >SQL 結合: USING、ON、WHERE のパフォーマンスと構文の違いは何ですか?
SQL JOIN メソッド: USING、ON、WHERE のパフォーマンスと構文の違い
SQL には、テーブルを結合するためのいくつかのオプション (USING、ON、WHERE) が用意されています。これらのオプションの機能は似ていますが、それらのパフォーマンスと構文の意味について誤解が生じる可能性があります。この記事では、これらの接続方法の違いについて説明します。
パフォーマンス
一般に信じられていることに反して、3 つの接続方法の間にパフォーマンスに大きな違いはありません。 3 つの方法はすべて、同じ最適化されたクエリ プランを生成します。
構文とセマンティクス
ANSI 構文:
構文の使用:
「join the where」のあいまいさ (暗黙的な INNER JOIN)
WHERE 句を使用して結合条件を指定すると、特に外部結合タイプで曖昧さが生じる可能性があります。この問題は、SQL Server の論理クエリ処理順序 (FROM が WHERE より前に評価される) に起因します。 「join the where」は、誤ってデカルト積を作成したり、予期しない結果を生成したりする可能性があります。
文法的曖昧さ:
次の 2 つのクエリは、WHERE 句の暗黙的な内部結合と FROM 句の明示的な外部結合を混在させるときに発生する可能性のある構文の曖昧さを示しています。
<code class="language-sql">FROM T1, T2, T3 WHERE T1.ID = T2.ID AND T1.foo = 'bar' AND T2.fish = 42 FROM T1 INNER JOIN T2 ON T1.ID = T2.ID INNER JOIN T3 ON T1.ID = T3.ID WHERE T1.foo = 'bar' AND T2.fish = 42</code>曖昧さは、どの接続が外部でどの接続が内部であるかを明確に判断できないことから生じます。
おすすめ:
明確さ、一貫性、最新の SQL 標準との互換性のために、次のことをお勧めします。
以上がSQL 結合: USING、ON、WHERE のパフォーマンスと構文の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。