ホームページ > データベース > mysql チュートリアル > Oracle の ' ' 演算子と WHERE 句はどのように外部結合を作成しますか?

Oracle の ' ' 演算子と WHERE 句はどのように外部結合を作成しますか?

Mary-Kate Olsen
リリース: 2025-01-06 19:14:45
オリジナル
947 人が閲覧しました

How Do Oracle's

Oracle WHERE 句の外部結合: " " 演算子

Oracle データベースでは、WHERE 句内で " " 演算子を使用できます。 2 つのテーブル間の外部結合を指定します。外部結合を使用すると、両方のテーブルに一致するレコードだけでなく、一方のテーブルにのみ存在するレコードも取得できます。

構文

WHERE 句の " " 演算子は次のとおりです

WHERE Table1.Column = Table2.Column(+)
ログイン後にコピー

機能

「 」演算子が「=」記号の左側に表示される場合、それは LEFT OUTER JOIN を示します。これは、Table2 に一致するレコードがあるかどうかに関係なく、Table1 のすべてのレコードが返されることを意味します。 Table2 内の一致しないレコードは、結合された列の null 値とともに返されます。

逆に、「」演算子が「=」記号の右側にある場合は、RIGHT OUTER JOIN を示します。この場合、Table1 に一致するレコードがない場合でも、Table2 のすべてのレコードが返されます。 Table1 の一致したレコードは結果に含まれますが、一致しないレコードは null 値になります。

次のクエリを考えてみましょう:

SELECT
    Table1.Category1,
    Table1.Category2,
    count(*) as Total,
    count(Tab2.Stat) AS Stat
FROM Table1, Table2
WHERE (Table1.PrimaryKey = Table2.ForeignKey(+))
GROUP BY Table1.Category1, Table1.Category2
ログイン後にコピー

このクエリは、PrimaryKey 列とForeignKey 列に基づいて Table1 と Table2 の間で LEFT OUTER JOIN を実行します。 Table2 に一致するレコードがない場合でも、Table1 のすべてのレコードが結果に含まれます。 Table2 で一致しないレコードの場合、Stat 列は null になります。

推奨事項

Oracle で外部結合を作成するために " " 演算子を使用できますが、一般的にはこれは時代遅れであり、最新の結合構文ほど読みにくいと考えられています。より明示的かつ直観的な結合セマンティクスを提供するため、代わりに LEFT JOIN または RIGHT JOIN を使用することをお勧めします。

以上がOracle の ' ' 演算子と WHERE 句はどのように外部結合を作成しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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