学习笔记

  > mysql中查询group by 的使用方法

mysql中查询group by 的使用方法

最近在弄程序的使用用到了,多表联查里面的count(*),因此查出的结果要使用到group by这个sql关键字。

应用场景如下:

表class

idnamedes
1三年1班洛阳市三年一般
2三年2班

洛阳市三年2班

表student 

idnamecid
1zhangsan1
2lisi1
3王五2
4樱木1

要查出,以班级为单位,各班的人数。cid是外键,关联class表的id

sql 语句如下:

SELECT a.*,COUNT(b.id) AS student_num FROM class AS a LEFT JOIN student AS b ON a.id=b.cid;

以为这样就能得到结果。

然而结果如下:

得到的结果只有1条数据,原因就是没有使用组进行区分。

我们都知道mysql数据库里是一个二维数组,上面的语句明显没有区分条件,所以被混为一谈了,区分条件就需要使用组,也就是今天要说的group by

所以我们需要以班级作为分类的标准来进行输出

SELECT a.*,COUNT(b.id) AS student_num FROM class AS a LEFT JOIN student AS b ON a.id=b.cid GROUP BY a.id;

得到了正确的结果。


ok,今天就说道这里。如果有不正确的地方欢迎指正和交流。

发布时间:2018-04-24,17:57:29

mysql中查询group by 的使用方法。

作者:澎蠡

让学习成为一种习惯,让知识交流变成一种生活方式。