# 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的時候都是用+就少了轉換