where是直接对表中的字段进行限定,来筛选结果。having 则需要跟分组关键字 group by 一起使用,通过对分组字段或分组计算函数进行限定,来筛选结果。
WHERE
where关键字的特点是,直接用表的字段对数据集进行筛选。如果需要通过关联查询从其他的表获取需要的信息,那么执行的时候,也是先通过where条件进行筛选,用筛选后的比较小的数据集进行连接。这样一来,连接过程占用的资源比较少,执行效率也比较高。
HAING
having 不能单独使用,必须要跟group by 一起使用。
group by理解成对数据进行分组,方便我们对组内数据进行统计计算。
首先 我们要把所有的信息都准备好,包括从关联表中获取需要的信息,对数据集进行分租,形成一个包含所有需要的信息的数据集合。接着,再通过having 条件的筛选,得到需要的数据。
怎么正确地使用WHERE和 HAVING?
如果需要通过连接从关联表中获取需要的数据,where是先筛选后连接,而 having 是 先连接后筛选。
在需要对数据进行分组统计的时候,having可以完成where不能完成的任务。