【发布时间】:2022-12-17 18:28:36
【问题描述】:
有 2 个表 Contacts 和 BlockedEntries
表:联系人
身份证 名字 姓氏 电子邮件 职务
表:BlockedEntries
身份证电邮
尝试从联系人表中查找具有不止一次被阻止条目的条目
SELECT email, COUNT(*) as cc, GROUP_CONCAT( id SEPARATOR '#') AS ContactIds FROM contacts where email IN (SELECT email FROM BlockedEntries) GROUP BY email HAVING COUNT(*) > 1对于计数超过 1 的条目,有什么方法可以获取更多其他详细信息,例如名字、姓氏、电子邮件、职位等
不幸的是,这两个表之间没有关系,电子邮件是唯一可能的映射。 CONtact 表中可以存在 1 个或多个具有相同电子邮件地址的条目
样本数据
Id FirstName LastName Email JobTitle 12 sam j samj@gmail.com engineer 23 bos j bosj@gmail.com accountnt 34 cas j samj@gmail.com engineer 33 xxx j bosj@gmail.com fied 55 dfe c dfe@gmail.com student Table: BlockedEntries Id Email CreateDate 1 samj@gmail.com 09/12/2020 19:30:20 2 bosj@gmail.com 09/12/2020 19:30:20 3 dfe@gmail.com 09/12/2020 19:30:20 Result expecting email id firstname lastName jobtitle samj@gmail.com 12 sam j engineer samj@gmail.com 34 bos j accountnt bosj@gmail.com 23 cas j engineer bosj@gmail.com 33 xxx j fied dfe@gmail.com only 1 instance and no need to add this to result set
【问题讨论】:
-
请添加示例数据。
-
请添加表描述、一些数据示例、预期结果以及您使用的 MySQL 版本?
-
不幸的是,这两个表和电子邮件之间没有关系??是的,在电子邮件中没有 fk 的事实不是问题,但它没有被索引的事实可能会影响性能
-
这只是跨不同数据库的 2 个表的一次性报告所以性能并不是真正的问题我设法获得了重复电子邮件的 ID 但很高兴获得更多信息。我可以对其他列使用相同的 GROUP_CONCAT,但想将其放在不同的行中