使用加入或别名获取具有相同报告电子邮件地址的用户的详细信息

Posted

技术标签:

【中文标题】使用加入或别名获取具有相同报告电子邮件地址的用户的详细信息【英文标题】:fetching details of user having same reporting email address using join or alias 【发布时间】:2019-03-26 12:13:40 【问题描述】:

我有两张桌子

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

我想获取那些与 where 条件 usr_id=5 具有相同报告电子邮件地址的记录,因为当我登录到我的页面时,它会创建用户 id 的会话,例如现在使用 join 或 alias 在 where 条件下是 5

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】:
    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 中出现多次的用户。

【讨论】:

以上是关于使用加入或别名获取具有相同报告电子邮件地址的用户的详细信息的主要内容,如果未能解决你的问题,请参考以下文章

无法在 iOS 邮件中使用 WorkMail 盟友地址

如何使用同一登录页面处理两个不同用户的登录

如何使用 Facebook API 获取用户的辅助电子邮件地址

报告订阅 s-s-rS 中的电子邮件传递

用户调查报告

用户调查报告