【问题标题】:MySQL query that lists all instances of duplicate records列出所有重复记录实例的 MySQL 查询
【发布时间】:2017-10-21 19:46:41
【问题描述】:

我有一张包含许多重复记录的人员表(名字和姓氏相同)。我正在尝试编写一个查询来列出这些记录的所有实例。我不想将它们分组,因为我需要查看带有成员 ID 号的重复记录。例如,如果我在表中有 3 个 Joe Smith,我希望在运行查询后看到这个清单:

MemberID   FirstName    LastName
8746       Joe          Smith
8944       Joe          Smith
9774       Joe          Smith

我尝试编写查询,但它只列出了表中的所有记录。这是我尝试过的但没有达到我想要的效果:

 SELECT membership.Member_ID,membership.FirstName,membership.LastName    
 FROM membership WHERE membership.FirstName = membership.FirstName AND
 membership.LastName = membership.LastName;

【问题讨论】:

  • 如果以下任何答案已解决/帮助您解决问题,请接受答案和/或投票。谢谢。

标签: mysql


【解决方案1】:

您可以按如下方式自行加入:

SELECT distinct 
 m1.Member_ID,m1.FirstName,m1.LastName    
 FROM membership m1
 inner join membership m2
 on m1.memberid = m2.memberid
 where m1.FirstName = m2.FirstName 
 AND m1.LastName = m2.LastName
 and m1.id <> m2.id;

希望对你有帮助!

【讨论】:

    【解决方案2】:

    在我看来,分组实际上是要走的路。 有一个非常有用的 group_concat 函数,正好针对这些情况:

    SELECT   FirstName, LastName, GROUP_CONCAT(MemberID) AS ids
    FROM     membership
    GROUP BY FirstName, LastName
    HAVING   COUNT(*) > 1
    

    【讨论】:

      【解决方案3】:

      试试这样的:

      SELECT Member_ID, FirstName, LastName    
      FROM membership
      WHERE CONCAT(FirstName, LastName) IN ( SELECT CONCAT(FirstName, LastName)
                                             FROM membership
                                             GROUP BY FirstName, LastName
                                             HAVING COUNT(*) > 1 )
      

      【讨论】:

        【解决方案4】:

        要获取所有重复记录,您也可以使用相关子查询

        select a.* 
        from demo a
        where (
          select count(*)
          from demo b
          where a.FirstName = b.FirstName
          and a.LastName = b.LastName
        ) > 1
        

        DEMO

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-02-02
          • 2021-01-29
          • 2010-09-23
          • 1970-01-01
          • 2018-03-19
          • 1970-01-01
          相关资源
          最近更新 更多