两个oracle查询(一个用AND,另一个用OR)将返回相同的结果?

时间:2012-07-24 18:27:53

标签: oracle

是否存在两个查询产生不同结果的条件?

select * from a,b,c where a.id = b.id(+) and a.id=c.id(+);

select * from a,b,c where a.id = b.id(+) or a.id=c.id(+);

我认为在这两种情况下,如果id在表a中,它将返回该行。

1 个答案:

答案 0 :(得分:1)

第二个选择失败,ORA-01719,外部连接运算符(+)不允许在OR或IN的操作数中。

使用ANSI JOIN语法的另一个原因。如果你这样做,你甚至无法想到这个问题。