1. 程式人生 > >左連線 ,右連線,內連線和全外連線的4者區別

左連線 ,右連線,內連線和全外連線的4者區別

基本定義:

  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  程式設計師

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

我的座右銘:不會,我可以學;落後,我可以追趕;跌倒,我可以站起來;我一定行。