2017-01-26 10 views
0

У меня есть таблица с именами столбцовполучить дубликаты записей в MySQL на основе нескольких столбцов

ID,EMP_NAME,DEPARTMENT,VOTER ID, MOBILE NO,Driver_License_NO,REGISTRATION_DATE 

Нет работник может быть зарегистрировать более одного отдела. Если какой-либо сотрудник зарегистрирован более чем на отдел, он будет считаться записью DUPLICATE. Дублированная запись может оцениваться на основе повторяющегося мобильного телефона no. или идентификатор избирателя нет.

Я хочу, чтобы выход, как это

Name | Previous Department | Current Department | Possible Reason for Duplication(Mobile or Voter ID) 

К сожалению для бедных английского

благодаря

+0

Что уникально идентифицирует сотрудника? Я бы? Лицензия №? – GurV

ответ

0

правильный способ сделать это, чтобы база данных сделать проверку. Итак, после очистки данных вы должны добавить уникальный индекс. Что-то вроде этого (я не уверен, что определяет сотрудник):

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; 

Что касается возможных причин, вероятно, вы должны задать другой вопрос. Предоставьте образцы данных и объясните, что вы подразумеваете по возможным причинам. Этот ответ объясняет суть вопроса, идентифицируя дубликаты.