[英]Select Multiple Values SQL
我有一张表,数据如下
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
我只想选择并返回仅具有“ Alfred”和“ Maria”作为“人”角色的教室,其内容如下:
Select * from table_name where (Person='maria') and (Person=Alfred')
似乎不起作用。
您可以在此处看到一个SQL Fiddle ,
您可以使用group by
并having
:
select classroom
from table t
group by classroom
having count(*) = 2 and
sum(person in ('maria', 'Alfred')) = 2;
假设一个人不能多次进入教室。
这将检查教室中是否有两个名称,它们是否代表感兴趣的两个名称。 如果可以重复,则需要:
having count(distinct name) = 2 and
count(distinct case when person in ('maria', 'Alfred') then person end) = 2;
尝试这个。 Group by and having
与Count
工作。
SELECT Classroom
FROM tablename
WHERE Person IN( 'maria', 'Alfred' )
GROUP BY classroom
HAVING Count(Person) = 2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.