我可以选择另一个表中与该表中FK具有相同值的行数吗

  • 本文关键字:另一个 选择 我可以 FK mysql sql
  • 更新时间 :
  • 英文 :


对不起,如果这是糟糕的措辞。基本上,我需要做一个查询,告诉我俱乐部的名称和"俱乐部"的描述,以及该俱乐部的学生总数。学生只能在一个俱乐部,所以clubID是"学生"的外键。

我试着使用下面的答案,但很快就知道我离答案还差得很远。这可能吗?

SELECT clubs.clubName, clubs.clubDescription, COUNT(students.studentID) 
FROM club JOIN students ON students.clubID = clubs.clubID

您需要添加group by clauseclubs.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;

最新更新