Mysql 仅当记录列与三个条件匹配时才显示不同的用户id

Mysql 仅当记录列与三个条件匹配时才显示不同的用户id,mysql,sql,Mysql,Sql,对于MySQL来说,这是一个相当新的概念,我正在努力处理一个查询数据表的问题,我正试图通过它进行过滤。我想能够做的是仅在记录列上满足一组条件的情况下识别用户id 示例 返回保存所有记录1、2和3的每个用户的单个用户id user_id record --------------------- 1000 1 1001 1 1002 1 1003 1 1004 1 1000 2 100

对于MySQL来说,这是一个相当新的概念,我正在努力处理一个查询数据表的问题,我正试图通过它进行过滤。我想能够做的是仅在记录列上满足一组条件的情况下识别用户id

示例

返回保存所有记录1、2和3的每个用户的单个用户id

user_id     record       
---------------------
1000        1
1001        1  
1002        1
1003        1
1004        1   
1000        2
1000        3 
1002        2
1002        3

本例中的理想输出是

user_id
-------
1000
1002
我用have、COUNT和IN尝试了很多变体,但我似乎从来没有得到正确的输出,我想我开始搞糊涂了。任何能提供帮助的人都将不胜感激。

请:

select user_id
from t 
where record in (1, 2, 3)
group by user_id
having count(*) = 3; -- Use distinct inside function in case of duplicate records
如果您不知道这些记录是什么,则可以执行以下操作:

select user_id
from t 
group by user_id
having count(*) = (select count(distinct record) from t);

您可以在查询中使用HAVING子句来清楚地计算所有用户id值:

SELECT user_id
  FROM t 
 GROUP BY user_id
HAVING COUNT(*) = (SELECT COUNT(distinct record) FROM t );

提示:分组依据、拥有、计数不同