使用left join 条件时 on 和where的区别为。
- on 条件是在生成临时表时使用的条件,不管on的条件真假都会返回左边的记录。
- where是在生成临时表以后,在对临时表进行过滤,呢么就没有left join的含义了(一定返回左边的数据)只要条件不为真就全部过滤。
left join 、right join、 full join 都有这个特殊性 不管on上条件真与假都会返回左表或右表的记录,full join 则具有left和right表的并集。但是inner join 没有这个特殊性,条件放在on 或者where 结果集是一样的。