select * from classi left join codice on classi.ext = codice.ext where classi.ext not like 'zz%' AND classi.nome != classi.cognome
Per quanto rigurda i record doppi nn saprei. Non so se e' possibile con una query. Sarebbe come l'opposto della distinct. Potresti metteri i risultati in un ciclo e filtrarli per ricomporre i resulset.