資料庫中的聯接(join)是一個非常重要的概念,能夠很好地幫助我們解決資料庫的相關問題。本文將講解MySQL中的聯接方式:內聯接(inner join),左聯接(left join),右聯接(right join),交叉連接(cross join)。
我們將以下面兩張表格T1與T2為例來具體講解上述四種聯接方式。
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;
查詢結果如下:
當然也可以這樣寫:
SELECT * FROM T1,T2;
MySQL並不支持full join,但可以通過left join和right join來實現。