MySQL| MySQL语句的执行顺序

来源:互联网 发布:大学生电脑软件推荐 编辑:程序博客网 时间:2024/06/03 16:58

SQL语句的执行顺序:

(特别巧的是:关键字的书写顺序就是SQL子句的执行顺序)

子 句 说 明 是否必须使用 SELECT 要返回的列或表达式 是 FROM 从中检索数据的表 仅在从表选择数据时使用 WHERE 行级过滤 否 GROUP BY 分组说明 仅在按组计算聚集时使用 HAVING 组级过滤 否 ORDER BY 输出排序顺序 否 LIMIT 要检索的行数 否

EG:

SELECT vend_id,COUNT(*) AS num_prodsFROM products WHERE prod_price >2GROUP BY vend_idHAVING COUNT(*) >=2ORDER BY num_prods DESCLIMIT 0,3;

说明:
having子句后的COUNT(*)可以用别名num_prods代替,这条SQL语句的执行顺序是,首先根据where条件将所有的结果过滤出prod_price >2的记录,将过滤出来的记录按照vend_id将结果进行分组,将分组后的聚集结果按照条件COUNT(*) >=2每组数量>=2的记录过滤出来,然后按照列num_prods的降序排列,将排列后的结果从第一条开始取,取出不超过3条的记录.

返回结果:

+---------+-----------+| vend_id | num_prods |+---------+-----------+|    1003 |         7 ||    1001 |         3 ||    1002 |         2 |+---------+-----------+
原创粉丝点击