本文章來給各位同學介紹我的MySQL學習:left join, right join, inner join一些用法與解決,有需要了解聯合查詢的朋友可參考.
表A如下:
- aID aNum
- 1 a20110111
- 2 a20110112
- 3 a20110113
- 4 a20110114
- 5 a20110115
表B如下:
- bID bName
- 1 bName0111
- 2 bName0112
- 3 bName0113
- 4 bName0114
- 8 bName0118
一、left join … on
MySQL語句:SELECT * FROM a LEFT JOIN b ON a.aID = b.bID
結果如下:
- aID aNum bID bName
- 1 a20110111 1 bName0111
- 2 a20110112 2 bName0112
- 3 a20110113 3 bName0113
- 4 a20110114 4 bName0114
- 5 a20110115 NULL NULL
說明:left join是以A表的記錄為基礎,A可以看成左表,B可以看成右表,left join是以左表為準的,換句話說,左表(A)的記錄將會全部表示出來,而右表(B)只會顯示復合搜索條件的記錄,例子中為:A.aID = B.bID.
B表記錄不足的地方均為NULL.
二、right join … on
MySQL語句如下:SELECT * FROM a RIGHT JOIN b ON a.aID = b.bID
結果如下:
- aID aNum bID bName
- 1 a20110111 1 bName0111
- 2 a20110112 2 bName0112
- 3 a20110113 3 bName0113
- 4 a20110114 4 bName0114
- NULL NULL 8 bName0118
說明:right join 和 left join的結果剛好相反,這次是以右表(B)為基礎的,A表不足的地方用NULL填充。
三、inner join … on
MySQL語句如下:SELECT * FROM a INNER JOIN b ON a.aID = b.bID
等同于:SELECT * FROM a, b WHERE a.aID = b.bID
結果如下:
- aID aNum bID bName
- 1 a20110111 1 bName0111
- 2 a20110112 2 bName0112
- 3 a20110113 3 bName0113
- 4 a20110114 4 bName0114 --Vevb.com
說明:inner join并不以誰為基礎,它只是顯示符合條件的記錄,LEFT JOIN操作用于在任何的FROME字句中.
新聞熱點
疑難解答