-1

我有 2 个表,Student_Record 的表 A 和 Student_Subject 的表 B 由 Student_ID 字段链接。

Table A (Student_Record)
Student_ID | Name  | School_Year
1          | Jane  | 2010-2011
2          | Amy   | 2010-2011
3          | Dave  | 2011-2012
4          | Roger | 2010-2011


Table B (Student_Subject)
Student_ID | Subject | Grade
1          | Math    | Passed
1          | Physics | Passed
1          | History | Passed
2          | Math    | Failed
2          | Physics | Passed
2          | History | Passed
3          | Math    | Passed
3          | Physics | Passed
3          | History | Passed
4          | Math    | Passed
4          | Physics | Passed
4          | History | Passed


根据上面的示例表,我想选择 2010-2011 年入学并通过所有科目的学生。

结果应该返回JaneRoger,因为他们通过了所有 3 门科目并在 2010-2011 年入学,而Amy和Dave的学年是 2011-2012年数学不及格。

4

1 回答 1

1
select sr.Student_ID, sr.Name
from Student_Record sr
left outer join Student_Subject ss on sr.Student_ID = ss.Student_ID 
    and ss.Grade = 'Failed'
where ss.Student_ID is null
    and sr.School_Year = '2010-2011'

SQL 小提琴示例

于 2012-09-21T17:09:04.490 回答