外部結合における Oracle の ( ) 演算子を理解する
Oracle の () 演算子は、外部結合の古い SQL 構文で使用されており、混乱を引き起こすことがよくあります。 これは、ANSI 標準の JOIN
構文とは異なり、非標準の演算子です。 外部結合クエリ内でのその機能を調べてみましょう。
外部結合の説明
外部結合は、結合条件 (例: a.id=b.id
) に基づいて 2 つのテーブル (以下の例では「a」と「b」) の行を接続します。 INNER JOIN
とは異なり、外部結合には、他のテーブルに一致するものがない場合でも行が含まれます。
( ) による右外部結合
次の Oracle ステートメントの ( )
演算子は、右外部結合を指定します。
<code class="language-sql">select ... from a, b where a.id = b.id(+)</code>
このクエリはテーブル 'b' からすべての行を返します。 「b」の行に「a」の一致する id
がある場合、「a」の対応する行が含まれます。そうでない場合、「a」の列の結果セットには NULL
値が含まれます。
現代の代替手段
Oracle では、より明確で堅牢な ANSI-92 標準 JOIN
構文を使用することを強くお勧めします。
ANSI-92 (推奨):
<code class="language-sql">SELECT ... FROM a RIGHT JOIN b ON b.id = a.id</code>
Oracle の ( ) 構文 (非推奨):
<code class="language-sql">select ... from a,b where a.id=b.id(+)</code>
重要な考慮事項
( )
演算子には、標準の JOIN
構文にはない制限と癖があります。 可読性と保守性を向上させ、予期しない動作を回避するために、Oracle で外部結合クエリを作成するときは、常に ANSI-92 JOIN
構文を優先してください。
以上がOracle ( ) 演算子とは何ですか?また、OUTER JOIN でどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。