我是 mySQL 的新手,我尝试在整个网络和 stackoverflow 中进行搜索,以找到可能是一个非常简单的查询的解决方案。
我有一个名为客户数据的表,其中包含 ID、名字、姓氏、地址和出生日期等列。我想在 mySQL 中运行一个查询,该查询将识别并分组显示 2 条或更多记录的名字、姓氏、地址和出生日期相同的所有列。这里要注意的关键是 ID 永远不会重复,因此我需要为每条重复的记录找出 ID。
我见过许多使用 COUNT(*)
的示例查询,但这只显示 1 条记录和计数列中相同记录的出现,而不是显示第二条重复记录。
我运行的示例查询是这样的:
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
我希望我已经清楚地解释了我要实现的目标。 非常感谢您的帮助!
最佳答案
这将显示共享名字和姓氏的所有记录对:
SELECT * FROM Customer c1 JOIN Customer c2
ON c1.FirstName = c2.FirstName and c1.LastName = c2.LastName
AND c1.Uniq_Cust != c2.Uniq_Cust
关于mysql - 显示基于多列的所有重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18177503/