mysql之子查询与分组查询

有时候需要对查询结果进行分组,以便于我们对分组后的数据进行计算,可以使用数据分组操作

数据分组查询 group by

需要注意的是group by只是创建分组、并不能保证分组里面的数据排序。如果需要排序,可以使用order by

group by字句必须出现在where字句之后,order by之句之前

来看下分组实例,我指定了两个列,列名为accmplish_num是我想要分组的字段,

而别名为num的字段是对分组后的数据进行统计的总和,也就是说,我这个表里面accmplish_num为0出现了8次。

 除了上面这种分组数据外,还可以对分组进行指定条件

过滤分组    使用having字句

 where与having一起使用过滤

在他们一起使用的时候,注意先执行where后面的条件,再进行创建分组,统计,然后再统计num大于1的数据

 子查询

说明:就是嵌套在其他字句查询里面的查询

需求:我们知道订单表中的线路line_id,想要找出线路为15的乘客的所有信息

看下面的例子,先找出线路line_id=15的订单表中的所有乘客手机号,这个就是括号里面的子查询

然后在乘客表里面找出mobile在子查询中的所有乘客的信息,也就满足了我们需求,当然这只是简单的一层嵌套,你也可以使用多层,

但是并不建议嵌套太多,因为这样做在工作中影响查询效率

原文地址:https://www.cnblogs.com/king2/p/13658965.html