SQL开发手册

SQL On & Having & Where区别

2019-11-01  本文已影响0人  筑梦_Dream

结论:On > Where > 聚合函数 > Having

On

用于表关联(left join,right join ...),生成临时表时的过滤条件,On条件生效后生成临时表,但主表记录不会被过滤,没有匹配条件的主表记录的对应列都会显示null而已。

Where

表关联情况下,On条件生效后生成临时表,这时如果有Where条件,会根据该条件过滤临时表的所有记录,此时无论是主表还是join表都会根据条件进行过滤。

Having

因为Having执行时机在最后,所以可以把聚合函数当做条件进行过滤。

使用

  • On条件用于表关联,生效最快,但仍然会返回主表所有记录,其次是Where条件生效,可以筛选出想要的结果数据,如果有统计等聚合函数,Having会在最后生效。
  • 如果非表关联查询,那么On则无法使用,如果涉及到的过滤条件也没有涉及到计算统计后的字段,那么此时Having和Where的作用是一样的,但是Where的效率较高。
上一篇下一篇

猜你喜欢

热点阅读