sql - MYSQL获取结果数量

标签 sql mysql

当你使用mysql时,你可以这样做:

SELECT * FROM student WHERE teacher_id = 1

...然后你得到结果的数量,以及结果。但我只想要结果的数量,然后是每个老师。

在 mysql 中是否可能像 sizeof 之类的?

另外,如果有没有学生的老师,是不是列表中没有?还是必须说0?

最佳答案

你的意思是你想要每个老师的学生人数?你可以使用这样的东西:

SELECT teacher_id, count(*) AS student_count
FROM student
GROUP BY teacher_id

这不包括没有学生的教师。要将它们包含在结果中,您需要使用 JOIN(假设您有一个 teacher 表):

SELECT teacher.id, sum(if(student.id IS NULL, 0, 1)) AS student_count
FROM teacher
    LEFT JOIN student ON student.teacher_id=teacher.id
GROUP BY teacher.id

关于sql - MYSQL获取结果数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1514359/

相关文章:

sql - 选择总和和内连接

mysql - 如何在不在where子句中添加表名或表别名的情况下避免 "Ambiguous field in query"

mysql - 极慢的MySQL性能

php - 我是否需要为每个查询实例化 Php 数据库类?

两个日期之间的Mysql选择不起作用

mysql - 选择查询 3 个连接表

mysql - SQLITE 查询基于列的值检索列名

sql - 第二次执行时查询挂起

mysql - 使用 SSIS 将 SQL Server 表移动到特定的 MySQL 文件夹

mysql - 与同一列中的多个值进行比较?