左連線(left join) ,右連線(right join ),內連線(inner join)和全外連線(full join)的區別
阿新 • • 發佈:2021-06-30
首先呢介紹下它們的定義:
left join (左連線):返回包括左表中的所有記錄和右表中連線欄位相等的記錄。
right join (右連線):返回包括右表中的所有記錄和左表中連線欄位相等的記錄。
inner join (等值連線或者叫內連線):只返回兩個表中連線欄位相等的行。
full join (全外連線):返回左右表中所有的記錄和左右表中連線欄位相等的記錄。
明白了吧,什麼,還不懂?好,來舉個栗子:
A表 id name 1 張三 2 李四 3 王五 B表 id job_num job
2 0001 程式設計師
3 0002 醫生
內連線:(只有2張表匹配的行才能顯示)
select a.name,b.job from A a inner join B b on a.id=b.id 得到一條記錄: 李四 程式設計師
左連線:(左邊的表不加限制)
select a.name,b.job from A a left join B b on a.id=b.id 得到三條記錄: 張三 null 李四 程式設計師 王五 醫生
右連線:(右邊的表不加限制)
select a.name,b.job fromA a right join B b on a.id=b.id 得到兩條記錄: 李四 程式設計師 王五 醫生
全外連線:(左右2張表都不加限制)
select a.name,b.job from A a full join B b on a.id=b.id 得到四條資料: 張三 null 李四 程式設計師 王五 醫生