我有包含以下数据的用户表:
user_id site_unique_id user_email
1 1 steve@gmail.com
2 2 steve@gmail.com
3 3 steve@gmail.com
4 1 mark@gmail.com
5 3 mark@gmail.com
6 1 jack@gmail.com
7 2 jack@gmail.com
8 3 jack@gmail.com
9 1 smith@gmail.com
10 2 smith@gmail.com
我想通过mysql查询来获取存在于所有3个站点中的用户电子邮件,即
email_id site_unique_id
steve@gmail.com 1,2,3
jack@gmail.com 1,2,3
上述数据标记和杰克分别在站点2和3中不存在,而在SQL结果中不需要的那些电子邮件。
答案 0 :(得分:1)
我认为您希望所有三个网站中的用户。如果是这样:
select user_email, group_concat(site_unique_id order by site_unique_id) as sites
from t
group by user_email
having count(*) = 3;
答案 1 :(得分:1)
使用group_concat并拥有
select user_email, group_concat(site_unique_id SEPARATOR ',')
from tablename
group by user_email
having count(*)=3