我有一个包含列名称的表
ID,EMP_NAME,DEPARTMENT,VOTER ID, MOBILE NO,Driver_License_NO,REGISTRATION_DATE
任何员工不得在多个部门注册。如果任何员工在多个部门注册,则会被视为重复记录。重复记录可以根据重复手机号来判断。或选民 ID 号。
我想要这样的输出
Name | Previous Department | Current Department | Possible Reason for Duplication(Mobile or Voter ID)
抱歉英语不好
谢谢
最佳答案
正确的方法是让数据库进行检查。因此,清理数据后,您应该添加唯一索引。像这样的东西(我不确定员工的定义是什么):
create unique index unq_atable_empname_department on atable(empname, department);
您可以使用聚合获取所有重复项:
select empname, group_concat(distinct department) as departments
from atable
group by empname
having count(distinct department) > 1;
至于可能的原因,你可能应该问另一个问题。提供示例数据并解释可能原因的含义。这个答案是为了解决问题的要点,识别重复项。
关于mysql - 根据多列获取mysql中的重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41879596/