con access sarebbe una cosa del genere ma ho bisogno di saperlo in mysql (e dovrei aggiungere anche, se il conteggio >0 restituisci una X).

TRANSFORM Count(ContattiTipo.IDTipo) AS ConteggioDiIDTipo
SELECT Contatti.Nome
FROM Tipi INNER JOIN (Contatti INNER JOIN ContattiTipo ON Contatti.IDContatto = ContattiTipo.IDContatto) ON Tipo.IDTipo = ContattiTipo.IDTipo
GROUP BY Contatti.Contatto
PIVOT Tipo.Tipo;