And,Where使用提示以及用+進行左關聯(lián)的提示及注意事項
更新時間:2013年02月05日 09:19:02 作者:
先左關聯(lián)后在過濾假如關聯(lián)的結(jié)果里面B.b3=null那么你在where后面在加B.b3=2那么結(jié)果中B.b3肯定是沒有null的情況的,也就是說用+進行左關聯(lián)沒有用leftjoin靈活待后續(xù)看是否有什么好的解決方案
1and和where的濫用用的時候請多注意
下面的三段代碼的效果肯定是不一樣的
(1)
selectA.a1,B.b3
fromAleftjoinB
onA.a2=B.b2
whereA.a3=1
andB.b3=2
先左關聯(lián)后在過濾假如關聯(lián)的結(jié)果里面B.b3=null那么你在where后面在加B.b3=2那么結(jié)果中B.b3肯定是沒有null的情況的
(2)
selectA.a1,B.b3
fromAleftjoinB
onA.a2=B.b2
andB.b3=2
whereA.a3=1
關聯(lián)前先過掉B的b3=2的條件然后再左關聯(lián)起來那么這個結(jié)果可能B.a3會有null的情況的
(3)
selectA.a1,B.b3
fromAleftjoinB
onA.a2=B.b2
andB.b3=2
andA.a3=1
關聯(lián)前先過掉B中的B3=2和A中的a3=1條件然后再關聯(lián)起來那么這個結(jié)果可能B.b3會有null的情況的
所以大家在用where和and的時候放的位置請多注意了
2用+進行左關聯(lián)缺陷也許可以有解決方案待后續(xù)
(1)
selectA.a1,B.b3
fromA,B
whereA.a2=B.b2(+)
andA.a3(+)=1
andB.b3(+)=2
這個條件應該是和1里面的(1)的情況一樣
先左關聯(lián)后在過濾假如關聯(lián)的結(jié)果里面B.b3=null那么你在where后面在加B.b3=2那么結(jié)果中B.b3肯定是沒有null的情況的
也就是說用+進行左關聯(lián)沒有用leftjoin靈活待后續(xù)看是否有什么好的解決方案
下面的三段代碼的效果肯定是不一樣的
(1)
復制代碼 代碼如下:
selectA.a1,B.b3
fromAleftjoinB
onA.a2=B.b2
whereA.a3=1
andB.b3=2
先左關聯(lián)后在過濾假如關聯(lián)的結(jié)果里面B.b3=null那么你在where后面在加B.b3=2那么結(jié)果中B.b3肯定是沒有null的情況的
(2)
復制代碼 代碼如下:
selectA.a1,B.b3
fromAleftjoinB
onA.a2=B.b2
andB.b3=2
whereA.a3=1
關聯(lián)前先過掉B的b3=2的條件然后再左關聯(lián)起來那么這個結(jié)果可能B.a3會有null的情況的
(3)
復制代碼 代碼如下:
selectA.a1,B.b3
fromAleftjoinB
onA.a2=B.b2
andB.b3=2
andA.a3=1
關聯(lián)前先過掉B中的B3=2和A中的a3=1條件然后再關聯(lián)起來那么這個結(jié)果可能B.b3會有null的情況的
所以大家在用where和and的時候放的位置請多注意了
2用+進行左關聯(lián)缺陷也許可以有解決方案待后續(xù)
(1)
復制代碼 代碼如下:
selectA.a1,B.b3
fromA,B
whereA.a2=B.b2(+)
andA.a3(+)=1
andB.b3(+)=2
這個條件應該是和1里面的(1)的情況一樣
先左關聯(lián)后在過濾假如關聯(lián)的結(jié)果里面B.b3=null那么你在where后面在加B.b3=2那么結(jié)果中B.b3肯定是沒有null的情況的
也就是說用+進行左關聯(lián)沒有用leftjoin靈活待后續(xù)看是否有什么好的解決方案
相關文章
在Oracle網(wǎng)絡結(jié)構(gòu)解決連接問題
在Oracle網(wǎng)絡結(jié)構(gòu)解決連接問題...2007-03-03ORACLE數(shù)據(jù)庫逐步解決ORA-12541、ORA-01034和ORA-27101、ORA-00119和ORA0013
這篇文章主要介紹了ORACLE數(shù)據(jù)庫逐步解決ORA-12541、ORA-01034和ORA-27101、ORA-00119和ORA00132過程的相關步驟,需要的朋友可以參考下2020-04-04