oracle使用+简写左关联出现的结果集不一致问题
Posted 一陌路人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle使用+简写左关联出现的结果集不一致问题相关的知识,希望对你有一定的参考价值。
这是使用(+)的sql语句(已简写)
select a.id,b.num
from a,b
where a.id=b.id(+) and b.num>10
这是使用left join的sql语句
select a.id,b.num
from a
left join b
on(a.id=b.id and b.num>10)
两个sql的结果不一致,通过查找问题,更改使用+的sql
select a.id,b.num
from a,b
where a.id=b.id(+) and b.num(+)>10
更改后结果一致
结论:
oracle使用+简写左关联时,两个表的非关联条件若有(+),则最后的结果行数与主表相同,若两个表的非关联条件没有(+),则这些非关联条件会作用于关联后的结果,对关联后的结果再进行一次条件筛选,最后的结果行数<=主表
以上是关于oracle使用+简写左关联出现的结果集不一致问题的主要内容,如果未能解决你的问题,请参考以下文章