我有一个由3列组成的表格。
user_id,certificate_type,已批准
每个user_id可以具有多行,每行的certificate_type在1到30之间。
我想要做的是用一组不同的证书类型搜索表,并生成与组合匹配的所有user_id的列表。如果行已批准= 1,我只想要结果。
我可以想到非常复杂的方法来进行多次搜索,但是我怀疑SQL中存在一个简单的查询,因为我不认为我要执行的操作非常不寻常!
答案 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