And,Where使用提示以及用+進行左關聯的提示及注意事項

先左關聯后在過濾假如關聯的結果里面B.b3=null那么你在where后面在加B.b3=2那么結果中B.b3肯定是沒有null的情況的,也就是說用+進行左關聯沒有用leftjoin靈活待后續看是否有什么好的解決方案

1and和where的濫用用的時候請多注意

下面的三段代碼的效果肯定是不一樣的
(1)
代碼如下:
selectA.a1,B.b3
fromAleftjoinB
onA.a2=B.b2
whereA.a3=1
andB.b3=2

先左關聯后在過濾假如關聯的結果里面B.b3=null那么你在where后面在加B.b3=2那么結果中B.b3肯定是沒有null的情況的
(2)
代碼如下:
selectA.a1,B.b3
fromAleftjoinB
onA.a2=B.b2
andB.b3=2
whereA.a3=1

關聯前先過掉B的b3=2的條件然后再左關聯起來那么這個結果可能B.a3會有null的情況的
(3)
代碼如下:
selectA.a1,B.b3
fromAleftjoinB
onA.a2=B.b2
andB.b3=2
andA.a3=1

關聯前先過掉B中的B3=2和A中的a3=1條件然后再關聯起來那么這個結果可能B.b3會有null的情況的

所以大家在用where和and的時候放的位置請多注意了

2用+進行左關聯缺陷也許可以有解決方案待后續
(1)
代碼如下:
selectA.a1,B.b3
fromA,B
whereA.a2=B.b2(+)
andA.a3(+)=1
andB.b3(+)=2

這個條件應該是和1里面的(1)的情況一樣

先左關聯后在過濾假如關聯的結果里面B.b3=null那么你在where后面在加B.b3=2那么結果中B.b3肯定是沒有null的情況的
也就是說用+進行左關聯沒有用leftjoin靈活待后續看是否有什么好的解決方案

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享