關於外連接的提醒

記得我剛入門SQL的時候老師和書上都說left join做外連接就是左邊的表的數量就是查詢結果的數量,其實這是不對的。今天突然想起一定要提向大家。我知道老師是爲了讓學生快些入門,因爲這句話只考慮了右表沒有與左表關聯數據的情況但是如果右表有多條與左表關聯的數據呢?所以查詢結果應該是大於等於左表記錄條數纔對而不是等於。

下面用實例說明問題:

table A(用戶信息)

UID     USERNAME

------   ------------------

1         張三

2         李四

3         王五

 

table B(用戶登錄記錄)

UID     Time

-------  -------------

2         2010-10-28 13:58:40

2         2010-10-28 13:58:48

2         2010-10-28 13:58:54

3         2010-10-28 13:58:59

3         2010-10-28 13:59:05

 

select A.*,B.Time from A left join B

 

一共是6條記錄

UID     USERNAME          Time

------   ------------------    ------------

1         張三                     NULL

2         李四                    2010-10-28 13:58:40

2         李四                    2010-10-28 13:58:48

2         李四                    2010-10-28 13:58:54

3         王五                    2010-10-28 13:58:59

3         王五                    2010-10-28 13:59:05

 

 

當右表沒有記錄的時候用null和左表匹配,當右表有記錄而且是多條記錄的時候左表記錄要重複以匹配右表的記錄。其實這樣是有用的自己想想看哦。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章