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

Left join,Right join,Inner join 

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

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


Right Join


Left Join


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进右表



猜你喜欢

转载自blog.csdn.net/evanxuhe/article/details/81021189