我要查询的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
暂无答案!
目前还没有任何答案,快来回答吧!