SQL inner join、left join、right join用法


1.連接運算由兩部分構成:連接類型與連接條件

連接類型可分為

INNER JOIN(等值連接)

LEFT  JOIN(左聯接) 

RIGHT JOIN (右聯接) 返回包括右表中的所有記錄和左表中聯結字段相等的記錄

連接條件可分為

NATURAL   自然連接(去掉重復屬性)

ON   連接條件(保留重復屬性)

USING 屬性名1,屬性名2… (保留指定重復屬性)

 

2.操作實例

  表A記錄如下:

  aID      aNum

   1         a2016001

   2         a2016002

   3         a2016003

   4         a2016004

   5         a2016005

 

  bID       bName

   1          bmumu001

   2          bmumu002

   3          bmumu003

   4          bmumu004

   6          bmumu006

 

 測試如下:

 1.left join

  sql語句如下:

  select * from A left join B on a.aID=b.bID

  結果如下:

 aID        aNum             bID         bNAME

 1           a2016001         1           bmumu001

 2           a2016002         2           bmumu002

 3           a2016003         3           bmumu003

 4           a2016004         4           bmumu004

 5           a2016005        NULL       NULL

   結果說明:

   left join 是以A表的記錄為基礎的,A可以看成左表,B可以看成右表,left join 是以左表為准的.換句話說,左表(A)的記錄將會全部顯示出來,

   而右表(B)只會顯示符合搜索條件的記錄(a.aID=b.bID),B表記錄不足的地方均為NULL

 

 2.right join

  sql語句如下:

select * from A right join B on a.aID=b.bID

  結果如下:

 aID        aNum             bID         bNAME

 1           a2016001         1           bmumu001

 2           a2016002         2           bmumu002

 3           a2016003         3           bmumu003

 4           a2016004         4           bmumu004

 NULL       NULL               6           bmumu006

   結果說明:

   仔細觀察一下,就會發現和left join的結果剛剛相反, right join 是以B表的記錄為基礎的,A表記錄不足的地方用NULL填充

 

3.inner join

  sql語句如下:

select * from A inner join B on a.aID=b.bID

  結果如下:

 aID        aNum             bID         bNAME

 1           a2016001         1           bmumu001

 2           a2016002         2           bmumu002

 3           a2016003         3           bmumu003

 4           a2016004         4           bmumu004

    結果說明:

    很明顯,inner join 只顯示了 a.aID=b.bID的記錄,這說明inner join 只顯示符合條件的記錄

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM