理解 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中文网其他相关文章!