mysql-跨所有站点查找唯一用户

uqdfh47h  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(379)

我有一个用户表,其中包含以下数据:

  1. user_id site_unique_id user_email
  2. 1 1 steve@gmail.com
  3. 2 2 steve@gmail.com
  4. 3 3 steve@gmail.com
  5. 4 1 mark@gmail.com
  6. 5 3 mark@gmail.com
  7. 6 1 jack@gmail.com
  8. 7 2 jack@gmail.com
  9. 8 3 jack@gmail.com
  10. 9 1 smith@gmail.com
  11. 10 2 smith@gmail.com

我想让mysql查询,以获得用户的电子邮件,存在于所有3个网站,即。

  1. email_id site_unique_id
  2. steve@gmail.com 1,2,3
  3. jack@gmail.com 1,2,3

在上述数据中,站点2和3中分别不存在sql结果中不需要的那些电子邮件。

1rhkuytd

1rhkuytd1#

使用组concat和having

  1. select user_email, group_concat(site_unique_id SEPARATOR ',')
  2. from tablename
  3. group by user_email
  4. having count(*)=3
6yoyoihd

6yoyoihd2#

我想你想要的用户都在这三个网站。如果是:

  1. select user_email, group_concat(site_unique_id order by site_unique_id) as sites
  2. from t
  3. group by user_email
  4. having count(*) = 3;

相关问题