提问者:小点点

从多行中获取用户ID的mySQL搜索查询[重复]


我有一个由3列组成的表格。

user_id,certificate_type,approved

每个user_id可以有多行,每行的certificate_type介于1和30之间。

我要做的是用一组不同的证书类型搜索表,并生成一个与组合匹配的所有user_id的列表。如果行已批准=1,我只想要一个结果。

我可以想出非常复杂的方法来进行多个搜索,但我怀疑在SQL中有一个简单的查询,因为我不相信我正在尝试做的是非常不寻常的!


共1个答案

匿名用户

user_id分组,并仅选择那些具有您定义的certificate_type的用户(我随机选择了4个)

select user_id
from your_table
where certificate_type in (1,3,7,22)
and approved = 1
group by user_id
having count(certificate_type) = 4