mysql - найти уникальных пользователей на всех сайтах - PullRequest
0 голосов
/ 02 октября 2018

У меня есть таблица пользователей с данными ниже:

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.

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

использовать group_concat и иметь

select user_email, group_concat(site_unique_id SEPARATOR ',')
from tablename
group by user_email
having count(*)=3
0 голосов
/ 02 октября 2018

Я думаю, вы хотите, чтобы пользователи были на всех трех сайтах.Если так:

select user_email, group_concat(site_unique_id order by site_unique_id) as sites
from t
group by user_email
having count(*) = 3;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...