我有一张桌子说学生。这有2列studentid和classid
Anotehr table具有ClassID和ClassDescription的类
假设,Class有值
ClassID ClassDescription
1 A
2 B
3 C
4 D
5 E
我想创建一个查询来查找参加过A和B的学生。这应该是一个动态查询,以便下次我需要一个qry来找出已经参加过A,B和C或B,C和D的学生我应该能够使用它。
答案 0 :(得分:0)
创建一个新表格filterClass
作为您的恐龙来源,如
FilterID
'A'
'B'
'C'
然后您的查询
SELECT S.StudentID
FROM Student S
JOIN Class C
ON S.class_id = C.class_id
JOIN filterClass F
ON C.ClassDescription = F.FilterID
GROUP BY S.StudentID
HAVING COUNT(C.ClassDescription) = (SELECT COUNT(FilterID) FROM filterClass)
在这种情况下,SELECT COUNT(FilterID) FROM filterClass
将为3 (A,B,C)