sql左外連線和右外連線的區別
阿新 • • 發佈:2019-01-25
兩個表:
A(id,name)
資料:(1,張三)(2,李四)(3,王五)
B(id,name)
資料:(1,學生)(2,老師)(4,校長)
左連線結果:
select A.*,B.* from A left join B on A.id=B.id;
1 張三 1 學生
2 李四 2 老師
3 王五 NULL NULL
右連結結果:
select A.*,B.* from A right join B on A.id=B.id;
1 張三 1 學生
2 李四 2 老師
NULL NULL 4 校長
****************
補充:下面這種情況就會用到外連線
比如有兩個表一個是使用者表,一個是交易記錄表,如果我要查詢每個使用者的交易記錄就要用到左外外連線,因為不是每個使用者都有交易記錄。
用到左外連線後,有交易記錄的資訊就會顯示,沒有的就顯示NULL,就像上面我舉得例子一樣。
如果不用外連線的話,比如【王五】沒有交易記錄的話,那麼使用者表裡的【王五】的資訊就不會顯示,就失去了查詢所有使用者交易記錄的意義了。
****************
A(id,name)
資料:(1,張三)(2,李四)(3,王五)
B(id,name)
資料:(1,學生)(2,老師)(4,校長)
左連線結果:
select A.*,B.* from A left join B on A.id=B.id;
1 張三 1 學生
2 李四 2 老師
3 王五 NULL NULL
右連結結果:
select A.*,B.* from A right join B on A.id=B.id;
1 張三 1 學生
2 李四 2 老師
NULL NULL 4 校長
****************
補充:下面這種情況就會用到外連線
比如有兩個表一個是使用者表,一個是交易記錄表,如果我要查詢每個使用者的交易記錄就要用到左外外連線,因為不是每個使用者都有交易記錄。
用到左外連線後,有交易記錄的資訊就會顯示,沒有的就顯示NULL,就像上面我舉得例子一樣。
如果不用外連線的話,比如【王五】沒有交易記錄的話,那麼使用者表裡的【王五】的資訊就不會顯示,就失去了查詢所有使用者交易記錄的意義了。
****************
看一下結果就能明白左右連線的區別了
原文網址https://zhidao.baidu.com/question/102609896.html 侵刪