MySQL,只返回两列中有重复的行

Ric*_*ite 2 mysql sql

我在MySQL中有一张联系信息表;

第一个名字,姓氏,地址,等等.

我想运行在此表上,将返回只有行的查询第一最后一个名称,其在表中出现不止一次的组合.

我不想将"重复"分组(这可能只是名字和姓氏的重复,而不是地址或生日等其他信息) -

我想返回所有"重复"行,以便我可以查看结果并确定它们是否是欺骗行.这似乎是一件简单的事情,但事实并非如此.

我可以找到的每个解决方案要么将欺骗分组,只给我一个计数(这对于我需要对结果做什么没用)或根本不起作用.

在查询中甚至可以使用这种逻辑吗?我应该尝试用Python做什么吗?

Pet*_*ang 7

您应该能够GROUP BY使用子查询中的方法执行此操作.

SELECT t.first_name, t.last_name, t.address
FROM your_table t
JOIN ( SELECT first_name, last_name
       FROM your_table
       GROUP BY first_name, last_name
       HAVING COUNT(*) > 1
     ) t2
  ON ( t.first_name = t2.first_name, t.last_name = t2.last_name )
Run Code Online (Sandbox Code Playgroud)

子查询返回多次存在的所有名称(first_namelast_name),并JOIN返回与这些名称匹配的所有记录.