MySQL left join,right join,inner join 以及where和on的区别

Left join,Right join,Inner join 

首先Join的前提是两个有相同的变量作为连接纽带,left join 和 right join如下图所示,inner join则是两圆交集

MySQL left join,right join,inner join 以及where和on的区别_第1张图片

举个例子,user表和group表通过gid字段连接,有交集,有补集

MySQL left join,right join,inner join 以及where和on的区别_第2张图片

Right Join

MySQL left join,right join,inner join 以及where和on的区别_第3张图片

Left Join

MySQL left join,right join,inner join 以及where和on的区别_第4张图片

Inner Join


这样大家对Join的理解应该很清晰了


where和on的区别

where是对已经搜索出的结果的过滤条件

on是两者join形成新表时用到的匹配条件

以right join为例 分别用where和on过滤mygroup.gid>4

where

where过滤掉gid为4的记录


on 

先查出右边

匹配pid>4的相同pid后 

把user表向右join进右表

MySQL left join,right join,inner join 以及where和on的区别_第5张图片


你可能感兴趣的:(mysql)