2015-01-15 108 views
2

我正在寻找重复的数据库 - 但也显示所有重复的记录。我当前的查询:MySQL查找并显示所有重复记录

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都具有相同的电子邮件,那么我想同时显示两者。

有什么想法?

谢谢!

+0

你想如何显示两者?作为单独的行或在同一行?如果有多个? – xQbert 2015-01-15 18:25:53

回答

1

这将加入接触本身和只显示记录中,其中电子邮件是一样的具有超过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