Oracle 的 ( ) 运算符:一种传统的外连接方法
较旧的 SQL 代码经常使用 Oracle 的 ( ) 运算符,这是许多开发人员不熟悉的语法。 该运算符对于在 ANSI-89 标准之前创建 OUTER JOIN 至关重要,该标准缺乏明确的 OUTER JOIN 支持。
( ) 运算符本质上创建了一个 LEFT OUTER JOIN。 它允许一个表(假设表“b”)中的行根据指定的 ID 字段与另一个表(“a”)中的行连接。如果“b”中的行在“a”中没有匹配的行,则“b”中的相应列将在结果集中包含 NULL 值。
删除 ( ) 会将连接更改为 INNER JOIN,仅返回两个表中 ID 匹配的行。 因此,当您需要一个表中的所有行并接受另一个表中不匹配的行的潜在 NULL 时,( ) 至关重要。
尽管有其功能,Oracle 强烈建议不要使用 ( ) 运算符。 它是非标准的(不符合 ANSI),阻碍了向其他数据库系统的可移植性。 此外,它还受到使用标准 FROM
子句语法创建的 OUTER JOIN 中未发现的独特规则和限制。
为了获得更好的兼容性、性能并遵守现代最佳实践,Oracle 建议使用此标准 OUTER JOIN 语法:
<code class="language-sql">SELECT ... FROM a LEFT JOIN b ON b.id = a.id</code>
这可以实现与 ( ) 运算符相同的结果,同时利用 ANSI-92 语法和 Oracle 优化的查询执行计划的优势。
以上是Oracle 的 ( ) 运算符如何创建外连接,为什么应该避免它?的详细内容。更多信息请关注PHP中文网其他相关文章!