Вы можете использовать функцию агрегирования для получения более «релевантной» записи для каждого электронного письма.
Я думаю, что этот запрос даст вам лучший результат:
SELECT emailAddress, max(concat(fullName,',',address1,',',address2))
FROM table
GROUP BY emailAddress
Он вернет самую богатую строку для каждого адреса электронной почты, но все данные будут возвращены в одной строке (через запятую), поэтому вам придется как-то анализировать ее.
Если производительность не имеет значения, и вы хотите получить нормальный набор результатов в отдельных полях, вы можете использовать одно из них:
SELECT table.emailAddress, fullName, address1, address2
FROM
table JOIN
(SELECT emailAddress,
max(concat(fullName,address1,address2)) as bestRowInOneString
FROM table
GROUP BY emailAddress
) bestRowsSubQuery
ON
concat(table.fullname,table.address1,table.address2) = bestRowsSubQuery.bestRowInOneString
AND table.emailAddress = bestRowsSubQuery.emailAddress