sql左連接條件
㈠ sql左連接怎麼加條件、、、
應該加在語句的最後面,作為全局條件,他是指向整條語句的,先連接再計算條件,有個優先順序的。
語句寫法為:
Select [列1],[列2] from A left Join B on A.[列1]=B.[列5] where A.[列2]<>'張三';
㈡ sql左連接和右連接什麼情況使用
假設a表有兩個欄位,Aid、name,
b
表也有兩欄位
Bid,nameid
其中
nameid是Aid在b
表中的外鍵。
a表有數據如下:
Aid
name
1
a
2
b
3
c
b表有數據如下:
Bid
nameid
1
1
2
1
3
1
4
2
5
2
用左連接,就是以左邊那個表為標准,左邊那表(表a)的所有記錄必須得全部出現,例如:
select
*
from
a
left
join
b
on
a.Aid=b.nameid
結果應應該為:
Aid
name
Bid
nameid
1
a
1
1
1
a
2
1
1
a
3
1
2
b
4
2
2
b
5
2
3
c
NULL
NULL
表a
的
Aid為1的出現了三次,Aid為2的出現了兩次,Aid為3的出現了一次,全部都出現了。但因為在表b中沒有以Aid為3對應的記錄,所以用null來填充。
同樣道理,用右連接,就是以右邊那個表為標准,
例如:select
*
from
a
right
join
b
on
a.Aid=b.nameid
結果應該為:
Aid
name
Bid
nameid
1
a
1
1
1
a
2
1
1
a
3
1
2
b
4
2
2
b
5
2
表b的記錄必須全部出現,但沒有出現
a表中Aid為3的記錄,是因為b表中沒有以之對應的記錄,而且此時是以b表為標準的。
㈢ sql帶條件的左連接
sql帶條件的左連接應加在語句的最後面,作為全局條件,他是指向整條語句的,先連接再計算條件,有個優先順序的。
語句寫法為:
Select [列1],[列2] from A left Join B on A.[列1]=B.[列5] where A.[列2]<>'張三';