【发布时间】:2015-02-16 14:34:34
【问题描述】:
我有 3 张桌子
学生(身份证,姓名)
主题(ID,姓名)
student_subjects(student_id,subject_id,mark)
我想选择所有科目及格的学生姓名(所有科目得分>=50)
我试过了:
SELECT DISTINCT s.NAME
FROM STUDENT_SUBJECTS sb,
STUDENTS s,
SUBJECTS b
WHERE s.ID = sb.STUDENT_ID
AND b.ID = sb.SUBJECT_ID
AND sb.MARK >= 50
但这会得到任何科目大于或等于 50 的学生 有什么方法可以只获取通过所有科目的学生的姓名吗?
【问题讨论】:
-
发布一个工作测试用例。这应该包括创建、插入语句以及所需的输出。没有人可以仅通过查看问题来重现您的问题。
-
如果您想通过,最好在没有太多帮助的情况下完成作业。如果您只需要学生姓名,NOT EXISTS 可能会有所帮助。
-
SQL Fiddle 似乎已关闭,但是.. 您想计算按学生分组的 subject 和 student_subhects 行