mySQL搜索查询以从多个行获取用户ID

时间:2018-06-25 10:14:41

标签: mysql

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

user_id,certificate_type,已批准

每个user_id可以具有多行,每行的certificate_type在1到30之间。

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

我可以想到非常复杂的方法来进行多次搜索,但是我怀疑SQL中存在一个简单的查询,因为我不认为我要执行的操作非常不寻常!

1 个答案:

答案 0 :(得分:2)

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