получение сведений о пользователе, имеющем тот же адрес электронной почты для отчетов, используя соединение или псевдоним - PullRequest
0 голосов
/ 22 октября 2018

У меня есть две таблицы

tbl_user:

id fisrtname lastname
5   John      Doe
6   Peter     Parker
7   Will      Smith

tbl_experience:

exp_id usr_id user_reporting_to
1       5     dev@abc.com 
2       6     admin@abc.com
3       7     dev@abc.com

Я хочу получить те записи, которые имеют одинаковый адрес электронной почты для отчетов с условием гдеusr_id = 5, потому что, когда я захожу на мою страницу, он создает сеанс с идентификатором пользователя, например, сейчас 5, где условие использует join или псевдоним

SELECT texperience.tbl_experience_report_to_email AS tbl_experience_report_to_email, 
    tuser.tbl_user_fname AS tbl_user_fname, 
    texperience.tbl_experience_designation AS tbl_experience_designation 
FROM tbl_experience AS texperience,
    tbl_user AS tuser 
WHERE tuser.tbl_user_fname = tuser.tbl_experience_id 
    AND texperience.tbl_experience_report_to_email = texperience.tbl_experience_id
    AND texperience.tbl_experience_user_id = 1

1 Ответ

0 голосов
/ 22 октября 2018
    SELECT tbl_user.*, tbl_experience.user_reporting_to FROM tbl_user 
    LEFT JOIN tbl_experience ON (tbl_user.id=tbl_experience.usr_id) 
    LEFT JOIN (SELECT count(*) as total_user, user_reporting_to FROM tbl_experience GROUP BY user_reporting_to) as email_group ON 
(email_group.user_reporting_to = tbl_experience.user_reporting_to) WHERE email_group.total_user > 1

В основном есть подзапрос, который группирует все адреса электронной почты, и объединенная таблица вернет тех пользователей, чьи сообщения электронной почты появляются более одного раза в tbl_experience.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...