我正在建立一个课程体系,其中有课程、讲师和一个表来将两者联系起来。
同感表:
id | name | ...
同感表:
id | name | instructors_needed | ...
同感表:
id | course_id | instructor_id
我创建了以下查询以获取与特定课程关联的讲师的姓名:
SELECT i.name, c.name, c.instructors_needed FROM courses c
LEFT OUTER JOIN
link
ON c.id = link.course_id
LEFT OUTER JOIN
instructors i
ON link.instructor_id = i.id
这很管用。我创建了以下查询以查找每门课程的讲师数量:
SELECT COUNT(i.name) as number, c.id, c.name, c.instructors_needed FROM courses c
LEFT OUTER JOIN
link
ON c.id = link.course_id
LEFT OUTER JOIN
instructors i
ON link.instructor_id = i.id
GROUP BY c.ID
我想把这两个问题结合起来,得到一个特定案例的所有关于讲师的详细信息,还有课程中讲师的总数和所需的讲师数量。我该怎么做?我知道这里的问题是分组。
我搜索了一下,但我只能找到2个表而不是3个表的示例,不知怎么的,我找不到3个表的示例。
非常感谢您的帮助,谢谢!
最佳答案
尝试:
SELECT i.name, c.name, c.instructors_needed, Ctr.CourseCount FROM courses c
LEFT OUTER JOIN
link
ON c.id = link.course_id
LEFT OUTER JOIN
instructors i
ON link.instructor_id = i.id
LEFT OUTER JOIN
(SELECT link.course_id, COUNT(*) as CourseCount FROM link GROUP BY link.course_id) Ctr
ON link.course_id = Ctr.course_id
关于mysql - 具有多个联接的MySQL COUNT(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17107646/