可以简单的理解为 on 后面的条件是加在 left join 的表上的,where 后面的条件,是加在left join结果集上的
如果把对 left join表的字段条件(is null除外),从on挪到where,那么就和inner join没有区别了
例1:此枯链处的left join改成inner join是一样的,where的意思旦斗是B必须存在,且col2=1
select * from A
left join B on A.col1=B.col1
where 没迟孙B.col2=1
例2:以下两个的效果是一样的
select * from A
left join B on A.col1=B.col1 and B.col2=1
select * from A
left join B on A.col1=B.col1
where B.col1 is null or B.col2=1