在Oracle SQL中,除了外部联接之外,where子句中(+;)运算符的用途是什么?

在Oracle SQL中,除了外部联接之外,where子句中(+;)运算符的用途是什么?,oracle,outer-join,Oracle,Outer Join,我有一些非常旧的Oracle SQL代码需要检查,如下所示,我试图了解(+)操作符在第一次使用后在where子句中做了什么 select * from table_a a, table b b where a.id = b.id (+) and b.seq_nb (+) = 1 and b.type_cd (+) = 'DOLLR' 我认为(+)是一个外部连接等价物,所以 from table_a

我有一些非常旧的Oracle SQL代码需要检查,如下所示,我试图了解
(+)
操作符在第一次使用后在
where
子句中做了什么

select *
     from table_a a,
          table b b
    where 
         a.id = b.id (+)
         and b.seq_nb (+) = 1
         and b.type_cd (+) = 'DOLLR'
我认为
(+)
是一个外部连接等价物,所以

 from table_a a,
              table b b
        where 
             a.id = b.id (+)
就跟

from table a a left outer join table b b on a.id=b.id
那么,如何将外部连接到硬编码变量,如下所示

     b.seq_nb (+) = 1
     and b.type_cd (+) = 'DOLLR'
任何帮助都将不胜感激,谢谢

这与:

select *
from table_a a
   left outer join table_b b 
     on a.id = b.id 
    and b.type_cd = 'DOLLR'
    and b.seq_nb = 1
有时也称为“过滤的外部联接”

它相当于与派生表的外部联接:

select *
from table_a a
   left outer join (
     select * 
     from table_b
     where b.type_cd = 'DOLLR'
       and b.seq_nb = 1
   ) b on a.id = b.id 

在考虑发帖之前,请先阅读您的课本和/或手册,并在谷歌上搜索任何错误消息或您的问题/问题/目标的许多清晰、简洁和准确的措辞,包括或不包括您的特定字符串/名称和网站:stackoverflow.com&tags;阅读许多答案。如果你发布一个问题,用一句话作为标题。反思你的研究。查看文本上方的投票箭头鼠标(&T)。这是否回答了您的问题?LEFT JOIN ON返回行上的内部联接并将所有不匹配的左表行以NULL扩展。始终知道要将什么内部联接作为外部联接的一部分。ON接受任何条件,而不仅仅是两列相等。(+)可以表示ON的某些情况。请务必阅读手册和您正在使用的功能介绍,更不用说您有问题的功能了。