显示基于多列的所有重复记录

时间:2013-08-11 22:51:53

标签: mysql duplicates records

我对mySQL很新,我尝试在整个网络和stackoverflow中搜索,以找到一个可能是一个非常简单的查询的解决方案。

我有一个名为客户数据的表,其中包含ID,名字,姓氏,地址和出生日期等列。我想在mySQL中运行一个查询,该查询将在组中标识并显示所有列,其中名字,姓氏,地址和DOB对于2个或更多记录是相同的。这里要注意的关键是ID永远不会重复,因此我需要为每个重复的记录取出ID。

我见过很多样本查询,其中使用COUNT(*),但这只显示1条记录,并且在count列中显示相同记录,而不是显示第2条重复记录。

我运行的示例查询是:

SELECT Uniq_Cust, Address, FirstName, LastName, DOB, COUNT(*) AS count1
FROM customerdata
GROUP BY FirstName, LastName, DOB, Address
HAVING count1 > 1
ORDER BY count1 ASC

我希望我已经解释了我想要清楚地实现的目标。 非常感谢你的帮助!

1 个答案:

答案 0 :(得分:4)

这将显示所有共享名字和姓氏的记录对:

SELECT * FROM Customer c1 JOIN Customer c2
ON c1.FirstName = c2.FirstName and c1.LastName = c2.LastName
AND c1.Uniq_Cust != c2.Uniq_Cust