mysql - 获取具有相同 ID 列的特定 COUNT 值

标签 mysql sql request

我有这个查询

SELECT * 
FROM classroom 
WHERE capacity > (SELECT COUNT(class_history.*) 
                  FROM classroom 
                  RIGHT JOIN class_history ON classroom.id_class = class_history.id_class 
                  GROUP BY class_history.id_class) 
ORDER BY id_class DESC

我想通过计算class_history记录来获取教室容量,与教室id相同,有人可以帮我查询吗?

这样我就可以得到这样的返回

classroom 1 - capacity  (0/20)
classroom 2 - capacity  (2/20)
classroom 3 - capacity  (9/10)

这里是截图

table 教室 classroom

class_history class_history

注意:如果容量已满则不显示,如果未满则无论是否还是0都会显示

最佳答案

使用LEFT JOIN,它应该可以解决您的问题

SELECT classroom.id_class, COUNT(class_history.id_class), capacity 
FROM classroom LEFT JOIN class_history
ON classroom.id_class = class_history.id_class
GROUP BY classroom.id_class
HAVING COUNT(class_history.id_class) < capacity

关于mysql - 获取具有相同 ID 列的特定 COUNT 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26134976/

相关文章:

php - 为 JsonObject 设置标题

python - 如何使用 MySQL 使用经度和纬度列找到行之间的距离?

c# - 如果表存在于 C# 中,则删除该表?

mysql - 如何用增量值更新表中的所有记录?

java - 从 Java 调用时数据库中的过程不工作

perl - FCGI+Perl+lighttpd : POST request is empty

mysql - 随机执行 SELECT 时为数据库表建立索引会有多大区别

sql - 为 oracle 创建 View 时出现语法错误

PHP Soap 请求标签为空

python - 检查 Django 模板中的请求获取参数