我有下表,我想要检索已经STUD_ID
或ENGLISH
的学生(SCIENCE
)。如果他们已经两个 ENGLISH和SCIENCE,那么就不要检索。
所以期望的输出是101,102,104,106,107
该表实际上是一个视图,其中包含表STUD_INFO
中的前两列,主题列来自STUD_INFO表中的嵌套表。
SELECT groupid,
Stud_id,
NST.Name
FROM STUD_INFO,
TABLE(SUBINFO) NST
任何人都可以帮我查询SQL查询吗?有趣的是我使用的时候 Subject = ENGLISH和Subject = Science它不会检索任何数据。
groupid Stud_id Subject
------- ------- --------
1 101 ENGLISH
1 102 MATH
1 103 ENGLISH
1 103 SCIENCE
1 104 ENGLISH
1 104 MATH
1 105 PT
1 105 ENGLISH
1 105 SCIENCE
2 106 ENGLISH
2 107 SCIENCE
2 108 SCIENCE
2 108 ENGLISH
答案 0 :(得分:4)
Subject = ENGLISH and Subject = SCIENCE
说“主题需要同时是英语和科学 ”,这绝不是真的。
select stud_id from your_view
where subject in ('ENGLISH', 'SCIENCE')
group by stud_id
having count(subject) = 1
这对你有用吗?