Mysql:ON 与 WHERE 的区别
口诀:先执行 ON
,后执行 WHERE
;ON
是建立关联关系,WHERE
是对关联关系的筛选。记住这句话就可以准确地判断查询结果了,我们通过两个 sql 来进行分析:
意思就是当在多表连接的时候,on会先执行过滤,之后他们在做连接,这时候要是是左连接或右连接,那么就会有多余的null字段。
例子如下:
A表
B表
where 结果:
on 结果:
这是因为on先执行了查询生成临时表,然后进行左连接。
口诀:先执行 ON
,后执行 WHERE
;ON
是建立关联关系,WHERE
是对关联关系的筛选。记住这句话就可以准确地判断查询结果了,我们通过两个 sql 来进行分析:
意思就是当在多表连接的时候,on会先执行过滤,之后他们在做连接,这时候要是是左连接或右连接,那么就会有多余的null字段。
例子如下:
A表
B表
where 结果:
on 结果:
这是因为on先执行了查询生成临时表,然后进行左连接。