Oracle の ( ) 演算子: 外部結合への従来のアプローチ
古い SQL コードでは、Oracle の ( ) 演算子がよく使用されますが、これは多くの開発者にとって馴染みのない構文です。 この演算子は、明示的な OUTER JOIN サポートが欠けていた ANSI-89 標準以前の OUTER JOIN の作成に不可欠でした。
() 演算子は基本的に LEFT OUTER JOIN を作成します。 これにより、指定された ID フィールドに基づいて、1 つのテーブル (テーブル 'b' とします) の行を別のテーブル ('a') の行と結合できます。 「b」の行に「a」の一致する行がない場合、「b」の対応する列の結果セットには NULL 値が含まれます。
() を削除すると、結合が INNER JOIN に変更され、両方のテーブルで ID が一致する行のみが返されます。 したがって、() は、一方のテーブルのすべての行が必要で、他方のテーブルの不一致行の潜在的な NULL を受け入れる場合に重要です。
その機能にもかかわらず、Oracle では ( ) 演算子の使用を強く推奨しません。 これは非標準 (ANSI に準拠していない) であるため、他のデータベース システムへの移植性が妨げられます。 さらに、標準の FROM
句構文を使用して作成された OUTER JOIN には見られない独自のルールと制限が適用されます。
互換性、パフォーマンスを向上させ、最新のベストプラクティスを順守するために、オラクルは次の標準の OUTER JOIN 構文を推奨します。
<code class="language-sql">SELECT ... FROM a LEFT JOIN b ON b.id = a.id</code>
これにより、ANSI-92 構文と Oracle の最適化されたクエリ実行プランの利点を活用しながら、() 演算子と同じ結果が得られます。
以上がOracle の ( ) 演算子はどのように外部結合を作成するのでしょうか?また、それを避けるべき理由は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。