SQL查询:如何查找有两门不及格成绩的学生 (使用EXISTS语句)
可以使用以下SQL语句来查询有两门不及格成绩的学生:
SELECT *
FROM students s
WHERE EXISTS (
SELECT *
FROM scores sc
WHERE sc.student_id = s.id
AND sc.score < 60
GROUP BY sc.student_id
HAVING COUNT(*) >= 2
);
解释一下这个查询语句:
首先,在主查询中从'students'表中选择所有学生的信息。
然后,在子查询中,我们从'scores'表中选择所有分数低于60分的记录,并按学生ID进行分组。
接下来,使用HAVING子句过滤出有两门或以上不及格成绩的学生。
最后,使用EXISTS语句将主查询和子查询联系起来,只返回符合条件的学生记录。
原文地址: https://www.cveoy.top/t/topic/nzTl 著作权归作者所有。请勿转载和采集!