【发布时间】:2020-11-21 22:07:23
【问题描述】:
我正在尝试查找在 R128 房间开会或在这两个名为“enroll”和“class”的表中注册了五个或更多学生的所有班级的名称。我可以单独找到这个问题的两个部分,但我不明白如何在一个查询中找到它们。
这给了我想要的 R128 房间的课程:
SELECT class.cname
FROM enroll RIGHT JOIN class ON enroll.cname=class.cname
WHERE room='R128';
这给了我有 5 个或更多学生的班级:
SELECT class.cname
FROM enroll RIGHT JOIN class ON enroll.cname=class.cname
GROUP BY enroll.cname
HAVING COUNT(enroll.cname)>4;
我不知道如何将它们组合成一个查询。这是我到目前为止所拥有的,但它返回一个空集:
SELECT class.cname, COUNT(enroll.cname)
FROM enroll RIGHT JOIN class ON enroll.cname=class.cname
WHERE room='R128'
GROUP BY enroll.cname
HAVING COUNT(enroll.cname)>4;
R128 室的课程是专利法、数据结构、印加考古学、奶牛管理和数学概论。有 5 名或更多学生的课程是数据库系统和操作系统设计。
【问题讨论】:
标签: sql count mariadb aggregate-functions having-clause