我必须找到一个类(class)和另一个类(class)的学生姓名。但是,当我执行 WHERE 语句时,它会删除包含其他类的所有其他行。
所以我的问题是:我该怎么做才能比较整个组并只选择同时属于 CLASSA 和 CLASSB 的学生。
一些学生在 CLASSA 中,一些在 CLASSB 中,一些在两者中。如何获得两者兼有的那个?
例如:
- John Smith 在 CLASSA
- BETTY WHITE 在 CLASSB
- 蒂米·爱德华兹在 CLASSA
- 蒂米·爱德华兹在 CLASSB
如果我使用 OR,它将选择所有名称。但我只想要一个同时在两个类(class)的学生。所以 Timmy Edwards 是我想要选择的人。
WHERE C.DESCRIPTION LIKE 'Systems Analysis%'
AND C.DESCRIPTION LIKE '项目管理%'
最佳答案
您可以使用 group by
和 having
:
select student
from enrollments
where class in ('CLASSA', 'CLASSB')
group by student
having count(*) = 2;
此版本假定学生只能为给定类(class)注册一次。
关于mysql - SQL 通过限定多个字符串进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46373214/