使用加入或别名获取具有相同报告电子邮件地址的用户的详细信息
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 中出现多次的用户。
【讨论】:
以上是关于使用加入或别名获取具有相同报告电子邮件地址的用户的详细信息的主要内容,如果未能解决你的问题,请参考以下文章