萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySQL學習:left join, right join, inner join

MySQL學習:left join, right join, inner join

本文章來給各位同學介紹我的MySQL學習:left join, right join, inner join一些用法與解決,有需要了解聯合查詢的朋友可參考。

表A如下:

jquery1610777990508549123="6"> 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

說明:

inner join並不以誰為基礎,它只是顯示符合條件的記錄。

LEFT JOIN操作用於在任何的FROME字句中。

copyright © 萬盛學電腦網 all rights reserved