on和where都出现在条查询当中,后面的语句都表示用来查询的条件,比如说筛选什么的,连接查询啊等等等
on
on作为条件查询的时候是是在生成临时表的时候,比如说左连接查询,这个时候不管条件是否正确,都会返回左边对应的数据行 ,第二个sql语句是用left join左连接查的,条件同样为假,但是还是会查询到左边的表的数据
where
where作为查询条件时,是在临时表生成之后了,这个时候如果后面的查询条件不为真,就会全部过滤掉,但是没有出现报错,我在测试的时候后面的7777是没有的,找不到和7777匹配的部门编号,所以说条件为假,然后结果就是全部过滤掉了,没有报错,但是一条数据没有
注意:
经测试 inner join on 和 join on 和 where 的效果一样,在条件为假的情况下