Du kan använda en sammanställningsfunktion för att få den mer "relevanta" posten för varje e-postmeddelande.
Jag tror att den här frågan skulle ge dig det bästa resultatet:
SELECT emailAddress, max(concat(fullName,',',address1,',',address2))
FROM table
GROUP BY emailAddress
Det kommer att returnera den rikaste raden för varje e-postadress men all data kommer att returneras inom en sträng (kommaseparerad) så du måste analysera den på något sätt.
Om prestanda inte är något problem och du vill få ett normalt resultat i separata fält kan du välja ett:
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