首頁 > 資料庫 > SQL > 左連接、右連接、內連接、全外連接的差別是什麼?

左連接、右連接、內連接、全外連接的差別是什麼?

青灯夜游
發布: 2020-07-16 11:31:49
原創
64657 人瀏覽過

區別:左連接返回包括左表中的所有記錄和右表中連接字段相等的記錄;右連接返回包括右表中的所有記錄和左表中連接字段相等的記錄;內連接字段相等的記錄;右連接返回包括右表中的所有記錄和左表中連接字段相等的記錄;內連接只傳回兩個表中連接欄位相等的行;全外連接傳回左右表中所有的記錄和左右表中連接欄位相等的記錄。

左連接、右連接、內連接、全外連接的差別是什麼?

left join (左連接,左外連接):傳回包含左表中的所有記錄和右表中連接欄位相等的記錄。

right join (右連接,右外連接):傳回包含右表中的所有記錄和左表中連接欄位相等的記錄。

inner join (等值連接或叫內連接):只傳回兩個表中連接欄位相等的行。

full join (全外連接):傳回左右表中所有的記錄和左右表中連接欄位相等的記錄。

舉例:

A表

  id   name  

  1  小王

  2  1  小王

  2  

  3  小劉

B表

  id  A_id  job

  1         

##內連接:(只有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  程序员
登入後複製

#註:在sql中l外連接包括左連接(left join )和右連接(right join),全外連接(full join),等值連接(inner join)又叫內連接。

相關推薦:《
SQL教學

以上是左連接、右連接、內連接、全外連接的差別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板