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