sql查询选修课程数低于3门的学生信息,包括0门

动态 未结 0 103
小小草
小小草 LV1 2023年9月23日 23:40 发表
可以使用 LEFT JOIN 和 GROUP BY 子句来查询选修课程数低于3门的学生信息,包括0门。以下是一种可能的 SQL 语句: ``` SELECT students.id, students.name, COUNT(scores.course_id) AS num_courses FROM students LEFT JOIN scores ON students.id = scores.student_id GROUP BY students.id, students.name HAVING COUNT(scores.course_id) < 3 OR COUNT(scores.course_id) IS NULL; ``` 解释一下这个 SQL 语句: 1. 首先在 FROM 子句中列出需要查询的表。 2. 然后使用 LEFT JOIN 连接 students 表和 scores 表,以便获取每个学生的选修课程数。 3. 在 SELECT 子句中选择学生的 ID、姓名和选修课程数,并使用 COUNT 函数计算选修课程数。 4. 在 GROUP BY 子句中按照学生的 ID 和姓名分组。 5. 最后使用 HAVING 子句筛选出选修课程数低于3门或者没有选修课程的学生。 需要注意的是,由于要包括没有选修课程的学生,所以需要使用 LEFT JOIN 而不是 INNER JOIN。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复