左連線 ,右連線,內連線和全外連線的4者區別
阿新 • • 發佈:2019-02-11
基本定義:
left join (左連線):返回包括左表中的所有記錄和右表中連線欄位相等的記錄。
right join (右連線):返回包括右表中的所有記錄和左表中連線欄位相等的記錄。
inner join (等值連線或者叫內連線):只返回兩個表中連線欄位相等的行。
full join (全外連線):返回左右表中所有的記錄和左右表中連線欄位相等的記錄。
舉個例子:
A表 id name 1 小王 2 小李 3 小劉 B表 id A_id job 1 2 老師 2 4 程式設計師
內連線:(只有2張表匹配的行才能顯示)
select a.name,b.job from A a inner join B b on a.id=b.A_id
只能得到一條記錄
小李 老師
左連線:(左邊的表不加限制)
select a.name,b.job from A a left join B b on a.id=b.A_id
三條記錄
小王 null
小李 老師
小劉 null
右連線:(右邊的表不加限制)
select a.name,b.job from A a right join B b on a.id=b.A_id 兩條記錄 小李 老師 null 程式設計師
全外連線:(左右2張表都不加限制)
select a.name,b.job from A a full join B b on a.id=b.A_id
四條資料
小王 null
小李 老師
小劉 null
null 程式設計師