簡體   English   中英

選擇多值SQL

[英]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 byhaving

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 havingCount工作。

SELECT Classroom
FROM   tablename
WHERE  Person IN( 'maria', 'Alfred' )
GROUP  BY classroom
HAVING Count(Person) = 2 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM