SQL查询有3门课程不及格的学生的学号、姓名及所在的班级名。
时间: 2024-02-23 08:03:00 浏览: 89
1.查询每门课程的【及格】学生数.sql
好的,以下是查询语句:
```
SELECT s.id, s.name, c.class_name
FROM student s
INNER JOIN class c ON s.class_id = c.id
WHERE s.id IN (
SELECT sc.student_id
FROM score sc
WHERE sc.score < 60
GROUP BY sc.student_id
HAVING COUNT(sc.course_id) = 3
)
```
解释一下这个语句的含义:
首先,从学生表(student)和班级表(class)中联接出学生的学号(id)、姓名(name)和班级名称(class_name)。
然后,使用子查询查询所有不及格的分数(score < 60)的学生(student_id),并按课程分组,筛选出修了3门不及格课程的学生。
最后,使用IN操作符将子查询的结果作为条件,筛选出这些学生的信息。
希望能对你有所帮助!
阅读全文