mysql - SQL 通过限定多个字符串进行选择

标签 mysql sql

我必须找到一个类(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 byhaving:

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/

相关文章:

mysql - 主键本身可以包含重复项但具有唯一行吗?

mysql - MySQL 中何时使用单引号、双引号和反引号

mysql - 作为 MySQL root 用户 : how to switch to other user without password

MySQL选择最后两个插入的ID

sql - 在 SQL Server 中使用全文搜索连接两个表

database - MySQL 查询未从 2 个连接表中正确选择

mysql - 获取最新的可接受差距的日期

SQL Server 使用通配符加入并在第一次匹配时停止

mysql - SQL 仅选择列上具有最大值的行

mysql - SQL插入多行