天天看點

mysql中的join用法

廢話不多說,直接上圖秒懂。

t1表的結構與資料如下:

<a href="http://s1.51cto.com/wyfs02/M02/7F/49/wKiom1cYqQrQKKMuAAAi01Dh3nY395.png" target="_blank"></a>

t2表的結構與資料如下:

<a href="http://s1.51cto.com/wyfs02/M02/7F/47/wKioL1cYqdmTqsY_AAAez3-BvZc580.png" target="_blank"></a>

inner join

select * from t1 inner join t2 on t1.id = t2.id;

<a href="http://s1.51cto.com/wyfs02/M01/7F/49/wKiom1cYqSTSPOjjAABIZF1luok361.png" target="_blank"></a>

inner join會把公共部分的資料查詢出來:

<a href="http://s5.51cto.com/wyfs02/M00/7F/49/wKiom1cYqTGzyjCKAAArIRRnCaQ253.png" target="_blank"></a>

left join

select * from t1 left join t2 on t1.id = t2.id;

<a href="http://s4.51cto.com/wyfs02/M00/7F/47/wKioL1cYqf_DYz0lAAA9yawT17s740.png" target="_blank"></a>

left join查詢出來的結果和前表記錄數一樣多,後表如果沒有對應記錄,則列為空:

<a href="http://s3.51cto.com/wyfs02/M01/7F/47/wKioL1cYqgmg6j94AABDkTAkerY942.png" target="_blank"></a>

right join

right join能轉化為left join,例如:

select * from t1 right join t2 on t1.id = t2.id;

能轉化為

select * from t2 left join t1 on t1.id = t2.id;

隻是前表發生了變化而已。

大夥可結合自己的業務場景,選擇正确的join。

本文轉自 興趣e族 51CTO部落格,原文連結:http://blog.51cto.com/simplelife/1766311

繼續閱讀