ciao,
una cosa del genere dovrebbe andare:

codice:
SELECT
    c.anagrafica
    ,t.contatto AS telefono
    ,f.contatto AS fax
    ,e.contatto AS email
FROM
(
(
    clienti AS c
LEFT JOIN
    contatti AS t
ON 
    (c.codice = t.codice AND t.tipo = 1)
)
LEFT JOIN
    contatti AS f
ON 
    (c.codice = f.codice AND f.tipo = 2)
)
LEFT JOIN
    contatti AS e
ON 
    (c.codice = e.codice AND e.tipo = 3)
WHERE
    t.codice IS NOT NULL
OR
    f.codice IS NOT NULL
OR 
    e.codice IS NOT NULL
potrebbero esserci dei problemi sulle parentesi, prova (non hai specificato il db che usi e per ex access è un po' capriccioso su queste mentre altri sono più di manica larga)