-1

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

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 中,它将返回该行。

4

1 回答 1

1

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

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

于 2012-07-24T18:39:23.983 回答