1. 程式人生 > >MySQL內聯接、左聯接、右聯接、交叉聯接四種連線方式例項

MySQL內聯接、左聯接、右聯接、交叉聯接四種連線方式例項



資料庫中的聯接(join)是一個非常重要的概念,能夠很好地幫助我們解決資料庫的相關問題。MySQL中的聯接方式:內聯接(inner join),左聯接(left join),右聯接(right join),交叉連線(cross join)。


以下面兩張表格為例來具體講解上述四種聯接方式。


1.內聯接(inner join)


內聯接(inner join),也稱為等值連線,只返回兩個表中聯結欄位相等的行。


我們將T1和T2進行內聯接,聯接欄位為id:


SELECT * FROM T1 INNER JOIN T2 ON T1.id=T2.id;

查詢結果:




SELECT * FROM T1,T2 WHERE T1.id=T2.id;效果一樣

2.左聯接(left join)


左聯接(left join),以左表的全部為基準,返回左表中所有和右表中聯結欄位相等的記錄以及右表中沒有匹配的欄位部分返回NULL.


SELECT * FROM T1 LEFT JOIN T2 ON T1.id=T2.id;


查詢結果如下:

3.右聯接(right join)


右聯接(right join),以右表的全部為基準,返回右表中所有和左表中聯結欄位相等的記錄以及左表中沒有匹配的欄位部分返回NULL.


SELECT * FROM T1 RIGHT JOIN T2 ON T1.id=T2.id;


查詢結果如下:


4.交叉聯接(cross)


交叉聯接(cross)返回兩張表的笛卡爾乘積。


SELECT * FROM T1 CROSS JOIN T2;


查詢結果如下: