创建查询都及格成绩,查询成绩都及格了的学生姓名、系别。
时间: 2024-05-04 22:20:47 浏览: 17
假设我们有两个表:学生表(students)和成绩表(scores)。学生表包括学生信息(学生ID、姓名、系别等),成绩表包括成绩信息(学生ID、科目、成绩等)。我们可以使用如下 SQL 语句查询成绩都及格了的学生姓名和系别:
```
SELECT students.姓名, students.系别
FROM students
INNER JOIN scores
ON students.学生ID = scores.学生ID
WHERE scores.成绩 >= 60
GROUP BY students.学生ID
HAVING COUNT(*) = COUNT(CASE WHEN scores.成绩 >= 60 THEN 1 END)
```
解释一下以上 SQL 的具体含义:
1. 首先使用 INNER JOIN 将学生表和成绩表连接起来,以便查询学生成绩信息。
2. 然后使用 WHERE 子句过滤出成绩大于等于60分的成绩信息。
3. 接着使用 GROUP BY 将学生信息按学生ID进行分组,以便计算每个学生的成绩数量。
4. 最后使用 HAVING 子句过滤出成绩数量等于总科目数的学生,即所有科目都及格的学生。
5. 最终查询结果包括学生姓名和系别。