如果我写一个SQL:
select * from a,b where a.id=b.id(+) and b.val="test"
我想从a中的所有记录都不存在,或者b中存在对应的记录,或者它与val =“ test”一起存在,这是正确的查询吗?
使用ANSI语法会更好
SELECT * FROM a LEFT OUTER JOIN b ON( a.id = b.id and b.val = 'test' )
您也可以使用Oracle的语法执行相同的操作,但是会产生一些提示
SELECT * FROM a, b WHERE a.id = b.id(+) AND b.val(+) = 'test'
请注意,在两种情况下,c由于您未指定连接条件,因此我将忽略该表。我假设您并不是真的想将A加入B,然后再使用C生成笛卡尔积。
c