sql语句中的on和where都是表示搜索条件.
在sql中有三种连接查询, cross join,inner join,和outer join
其中 cross join 和 inner join 有on和where的查询结果相同,但是在outer join 中
left join 和 right join ,查询结果并不相同.

on条件是在生成临时表时使用,他不管条件是否为真,都会返回左表的数据.

where条件则是在临时表生成之后,判断条件,若条件不符合,则删除数据.

在sql语句中执行的顺序,on在where之前先执行.

<>是不等于的意思

outer join相对于inner join的一个主要特性就是以一侧的表为基础

总的来说,outer join 的执行过程分为4步

  1、from 先对两个表执行交叉连接(笛卡尔积)

  2、应用on筛选器

  3、添加外部行(outer join)

  4、应用where筛选器

outer join有一个特点就是以一侧的表为基,假如另一侧的表没有符合on筛选条件的记录,则以null替代。在这次的查询中

链接: 转自这篇博客.

更多推荐

sql语句中的on和where的区别