左連接、右連接、內連接、全外連接的區別是什么?

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

左連接、右連接、內連接、全外連接的區別是什么?

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)又叫內連接。

相關推薦:《SQL教程

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享