mysql之left join、right join、inner join、

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行

left join图例

mysql之left join、right join、inner join、

inner join图例

mysql之left join、right join、inner join、

right join图例

mysql之left join、right join、inner join、

left join/right join VS inner join

(1). on与 where的执行顺序

PASS

mysql之left join、right join、inner join、

Great

mysql之left join、right join、inner join、

从上面例子可以看出,尽可能满足ON的条件,而少用Where的条件。从执行性能来看第二个显然更加省时。

(2).注意ON 子句和 WHERE 子句的不同

mysql之left join、right join、inner join、

 

3).尽量避免子查询,而用join

往往性能这玩意儿,更多时候体现在数据量比较大的时候,此时,我们应该避免复杂的子查询。如下:

PASS

mysql之left join、right join、inner join、

Great

mysql之left join、right join、inner join、