1、执行顺序 On>Where>Having
ON条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
WHERE条件是在临时表生成后在对临时表进行过滤的条件
Having最后才过滤使用
2、不同表连接方式产生的效果不一样。
1)在Left Join 时On后面的条件只对右表有效
详细解释:https://blog.csdn.net/xingzhemoluo/article/details/39677891。
2)inner join 不管是对左表还是右表进行筛选,on and 和on where都会对生成的临时表进行过滤。