码迷,mamicode.com
首页 > 数据库 > 详细

oracle使用+简写左关联出现的结果集不一致问题

时间:2019-12-16 13:24:26      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:code   不一致   主表   出现   oracle   oracl   作用   通过   问题   

这是使用(+)的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使用+简写左关联出现的结果集不一致问题

标签:code   不一致   主表   出现   oracle   oracl   作用   通过   问题   

原文地址:https://www.cnblogs.com/mlr-wjy/p/12048513.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!