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、

 

相关文章: