說到SQL,很多人可能用了挺久,但依然有個問題一直困擾著,那就是 left join、 join、 right join和 inner join等等各種 join的區別。網上搜,最常見的就是一張圖解圖,如下:

接下來就來實際自己動手實驗,徹底搞懂圖中的含義。
首先,先來建兩張表,第一張表命名為 kemu,第二張表命名為 score:


left join
顧名思義,就是“左連接”,表1左連接表2,以左為主,表示以表1為主,關聯上表2的數據,查出來的結果顯示左邊的所有數據,然后右邊顯示的是和左邊有交集部分的數據。如下:
select *from kemuleft join score on kemu.id = score.id
結果集:


right join
“右連接”,表1右連接表2,以右為主,表示以表2為主,關聯查詢表1的數據,查出表2所有數據以及表1和表2有交集的數據,如下:
select *from kemuright join score on kemu.id = score.id
結果集:


join(inner join)
join,其實就是“inner join”,為了簡寫才寫成join,兩個是表示一個的,內連接,表示以兩個表的交集為主,查出來是兩個表有交集的部分,其余沒有關聯就不額外顯示出來,這個用的情況也是挺多的,如下
select *from kemujoin score on kemu.id = score.id
結果集:


以后對于這三者應該再也不模糊了吧!