MySQL查找并显示所有重复项

3

我希望在数据库中查找重复记录,并显示所有重复记录。我的当前查询语句如下:

SELECT 'duplicate' as dup,c.Id, c.CreatedDate, c.email, c.Lead_Grade__c, count(c.email) 
FROM contact as c
Inner Join (select c.Id, c.email FROM contact as c group by c.email having count(c.email) > 1) as dup
ON c.email = dup.email
WHERE Lead_Grade__c is null;

这个方法可以为每个重复的记录提供1行。我希望每个重复的记录都有2行(或更多)。因此,如果记录X和记录Y都具有相同的电子邮件,则我想显示两者。

有什么想法吗?

谢谢!


你想如何展示它们?分别在不同的行上还是在同一行上?如果有多个呢? - xQbert
1个回答

2
这将会把联系人与自身连接,并仅显示那些具有超过1个记录且电子邮件相同的记录(假设ID是唯一值)。
因此,这个结果集应该只包含重复记录。
SELECT A.* 
FROM contact A
INNER JOIN CONTACT B
 on A.email = B.email
 and a.id <> b.ID
ORDER BY A.Email

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接