瞭解 Oracle 外連接中的 ( ) 運算子
Oracle 的 ( ) 運算子用於舊版 SQL 語法中的外連接,經常會造成混亂。 它是一個非標準運算符,與 ANSI 標準 JOIN
語法不同。 讓我們檢查一下它在外連接查詢中的功能。
外連接解釋
外連接根據連接條件(例如 a.id=b.id
)連接兩個表(下例中的「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中文網其他相關文章!