secondo me distinct in questo caso ti considera i campi diversi, cioè se 2 campi contengono lo stesso cognome ma in uno dei casi accompagnato a un altro cognome li considera diversi e te li replica, secondo me devi quindi eliminare i doppi dopo l'estrazione dal database magari con un explode , spero di essermi spiegata