# re: oracle 的left join和(+)真的可以起到一样的效果吗? 回复 更多评论
2007-12-14 10:11 by
是的,我也发现了这个问题。
因为速度的原因,差点搞死我!
不得已又换成了+号,
速度居然有两倍的差距!!
要是你有什么好的资料或结果的话,
请告诉我一声,谢谢。
wang20yin@126.com
# re: oracle 的left join和(+)真的可以起到一样的效果吗?[未登录] 回复 更多评论
2009-01-19 12:17 by
select * from a,b where a.id=b.id(+) and a.flg = '0';
select * from a left join b on a.id=b.id and a.flg = '0';
条件追加:
-〉and a.flg = '0'
你看一下区别吧!
处理方法:
select * from a left join b on a.id=b.id and a.flg = '0';
同下!
select * from a ,b where a.id=b.id and (a.flg = '0' or a.flg is null);
# re: oracle 的left join和(+)真的可以起到一样的效果吗? 回复 更多评论
2010-04-01 18:02 by
这个是版本问题 好像9i以后 才增加的left join 以前都是使用(+)
后续版本向下兼容 所以9i之后 这两者是通用的 但建议使用left jion增加可读性
# re: oracle 的left join和(+)真的可以起到一样的效果吗?[未登录] 回复 更多评论
2011-05-12 09:58 by
@aa
select * from a,b where a.id=b.id(+) and a.flg = '0';
select * from a left join b on a.id=b.id and a.flg = '0';
这两个不对等,
把第一个修改一下
select * from a,b where a.id=b.id(+) and a.flg(+) = '0';
这样 就和
select * from a left join b on a.id=b.id and a.flg = '0';
对等了
# re: oracle 的left join和(+)真的可以起到一样的效果吗?[未登录] 回复 更多评论
2011-07-19 09:53 by
oracle 在解析的时候会把left join right join 都转换成+
如果你写sql的时候都是用+就少了转换