对不起,如果这是糟糕的措辞。基本上,我需要做一个查询,告诉我俱乐部的名称和"俱乐部"的描述,以及该俱乐部的学生总数。学生只能在一个俱乐部,所以clubID是"学生"的外键。
我试着使用下面的答案,但很快就知道我离答案还差得很远。这可能吗?
SELECT clubs.clubName, clubs.clubDescription, COUNT(students.studentID)
FROM club JOIN students ON students.clubID = clubs.clubID
您需要添加group by clause
和clubs.clubName, clubs.clubDescription
列,因为count()
是聚合函数
SELECT clubs.clubName, clubs.clubDescription, COUNT(students.studentID)
FROM club JOIN students ON students.clubID = clubs.clubID
group by clubs.clubName, clubs.clubDescription
如果你想包括没有学生的俱乐部,你需要一个外部加入或相关的子查询:
select c.*,
(select count(*) from students s where s.clubID = c.clubId) as num_students
from clubs c;