我有这个查询
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 教室
表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/