mysql—选择一组行,将其所有关联项与列表匹配

ddhy6vgd  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(435)

我有张table:

id|name
------
1|Tom
1|Lucy
1|Frank
2|Lucy
2|Frank
3|Frank
4|Jane
5|Robert
6|John

需要id的结果,其中与特定id关联的所有名称都与列表匹配
名单是('lucy'、'frank'、'jane'、'robert'、'brandon')。
我试过这个:

select id 
from table 
group by id 
having name in('Lucy','Frank','Jane','Robert','Brandon')

获得的结果:

1
2
3
4
5

期望结果:

2
3
4
5

排除的内容:count(distinct id)>2000该列表包含200个名称,每个id至少与一个名称关联

7fhtutme

7fhtutme1#

您可以使用聚合和 having 确保 name 组中的不属于列表:

select id
from mytable
group by id
having max(name not in ('Lucy', 'Frank', 'Jane', 'Robert', 'Brandon')) = 0

相关问题