以下是一个使用MySQL进行多表联查、子查询以及流程控制函数的示例,它涉及到学生选课的表练习:
-- 假设存在学生表 `students` 和课程表 `courses` 以及选课表 `student_courses`
-- 选择了所有学生及其选课情况,并计算每个学生的选课数量
SELECT
s.student_id,
s.student_name,
COUNT(sc.course_id) AS chosen_courses_count
FROM
students s
LEFT JOIN student_courses sc ON s.student_id = sc.student_id
GROUP BY
s.student_id,
s.student_name;
在这个例子中,我们使用了LEFT JOIN
来获取所有学生的信息,即使他们没有选任何课程。我们使用COUNT
函数来计算每个学生选择的课程数量,并通过GROUP BY
对结果进行分组。这个查询展示了如何在MySQL中进行基本的联表查询和聚合操作。