on和where的区别

连接查询中,on是用来确定两张表的关联关系,关联好之后生成一个临时表,之后where对这个临时表再进行过滤筛选。

  • 区别:先执行on,后执行 where;on是建立关联关系在生成临时表时候执行,where是在临时表生成后对数据进行筛选的。

on是与连接查询语句(inner join 、left join、right join)紧密相连的。on查询出来的结果是和选择的连接查询类型一样的,所以一般都是把on和连接查询放在一起,如:(表1 inner join 表2 on 条件 、left join、right join)

表1 inner join 表2 on 条件得到一张临时表, 再用where来筛选想要的记录。