我想要查询的mysql数据库中有3个表:
courses (id, course_name)
college_courses (id, college_id, course_id, num_of_courses)
student_courses (id, course_id, college_id)
我正在尝试将一系列课程ID传递给查询和大学ID。我想创建一个结果集来显示每门课程的名称(根据我通过的ID),学院(例如id = 8)可以访问的课程数量以及每门课程分配给学生的数量。我尝试使用连接和子查询构建查询。这就是我现在所拥有的,但分配给大学和学生的课程数量都是错误的:
SELECT
courses.course_name,
COALESCE(SUM(
CASE
WHEN
college_courses.college_id = 8
THEN
college_courses.num_of_courses
ELSE
0
END
), 0) AS total, COUNT(
CASE
WHEN
student_courses.college_id = 8
THEN
student_courses.id
ELSE
0
END
) AS usedCourses
FROM
courses
LEFT JOIN
college_courses
ON college_courses.course_id = courses.id
LEFT JOIN
student_courses
ON student_courses.course_id = courses.id
WHERE
courses.id IN
(
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
)
GROUP BY
courses.courseid