MySql基礎(三)--join的用法

這篇博客主要講join的用法,這也是數據庫查詢操作中比較基礎且重要的知識點。

  join分爲內連接(inner join)和外連接(outer join)。

    外連接分爲外連接(outer join)、左連接(left join)、右連接(right join)和全連接(full join)。

  我們進行多表查詢的時候通常會利用笛卡爾積進行多種表的組合。

  通過一下兩張表進行舉例。

Person
PersonId FirstName LastName
1 John Allan
Address
AddressId PersonId City State
1 2 new york city new york

 

目錄

一、內連接

二、外連接


一、內連接

  內連接查詢返回滿足條件的所有記錄,默認情況下沒有指定某種連接,則爲內連接。

操作語句:
select FirstName,LastName,City,State from Person inner join Address on Person.PersonId=Address.PersonId;

  查詢結果爲Empty set (0.00 sec)

二、外連接

  1.左連接

  左連接又稱左外連接(left outer join),不僅返回滿足條件的所有記錄,而且還會返回不滿足連接條件的連接操作符左側表的其他行。

操作語句:
 select FirstName,LastName,City,State from Person left join Address on Person.PersonId=Address.PersonId;

  查詢結果爲:

FirstName LastName City State
John Allan NULL NULL

2.右連接

  右連接又稱右外連接(right outer join),不僅返回滿足條件的所有記錄,而且還會返回不滿足連接條件的連接操作符右側表的其他行。

操作語句:
select FirstName,LastName,City,State from Person right join Address on Person.PersonId=Address.PersonId;

查詢結果爲:

FirstName LastName City State
NULL NULL new york city new city

3.外連接

  外連接就是求兩個集合的並集。從笛卡爾積的角度講就是從笛卡爾積中挑出ON子句條件成立的記錄,然後加上左表和右表中剩餘的記錄。不過MySql是不支持outer join的,我們可以通過左連接和右連接結果的union操作來實現。

操作語句:
select FirstName,LastName,City,State from Person left join Address on Person.PersonId=Address.PersonId union select FirstName,LastName,City,State from Person right join Address on Person.PersonId=Address.PersonId;

查詢結果爲:

FirstName LastName City State
John Allan NULL NULL
NULL NULL new york city new york

4.全連接

  全連接查詢不僅返回滿足條件的所有記錄,而且還會返回不滿足連接條件的其他行。不過mysql默認不支持full join。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章