首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >选择多个值SQL

选择多个值SQL
EN

Stack Overflow用户
提问于 2014-12-30 16:57:18
回答 2查看 66关注 0票数 1

我有一个表,其中的数据如下

代码语言:javascript
运行
复制
ID Classroom Person
1   1         Alfred
2   1         Maria
3   2         Maria
4   2         Zoe
5   2         Alfred
6   3         Nick
7   3         Paul
8   3         Mike
9   3         Alfred
10  4         Zoe
11  4         Maria

我只想选择并返回只有“阿尔弗雷德”和“玛丽亚”这样一个人的教室:

代码语言:javascript
运行
复制
Select * from table_name where (Person='maria') and (Person=Alfred')

似乎不起作用。

你叫在这里看到一个

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-30 17:01:30

您可以使用group byhaving

代码语言:javascript
运行
复制
select classroom
from table t
group by classroom
having count(*) = 2 and
       sum(person in ('maria', 'Alfred')) = 2;

这假设一个人不能多次出现在教室里。

这检查了教室里有两个名字,他们是两个感兴趣的名字。如果您可以拥有副本,则需要:

代码语言:javascript
运行
复制
having count(distinct name) = 2 and
       count(distinct case when person in ('maria', 'Alfred') then person end) = 2;
票数 3
EN

Stack Overflow用户

发布于 2014-12-30 17:00:25

尝尝这个。Group by and havingCount一起工作。

代码语言:javascript
运行
复制
SELECT Classroom
FROM   tablename
WHERE  Person IN( 'maria', 'Alfred' )
GROUP  BY classroom
HAVING Count(Person) = 2 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27709399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档