使用3个表创建一个结果表

vyswwuz2  于 2021-06-21  发布在  Mysql
关注(0)|答案(0)|浏览(183)

我要查询的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

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题