ホームページ > データベース > mysql チュートリアル > Oracle の ( ) 演算子はどのように外部結合を作成するのでしょうか?また、それを避けるべき理由は何ですか?

Oracle の ( ) 演算子はどのように外部結合を作成するのでしょうか?また、それを避けるべき理由は何ですか?

Barbara Streisand
リリース: 2025-01-20 02:51:13
オリジナル
416 人が閲覧しました

How Does Oracle's ( ) Operator Create Outer Joins, and Why Should You Avoid It?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート