Tu solucion es muy buena, la pense igual, pero no funciona para esta consulta porque la consulta que tengo tiene ya una select de contactos algo asi:
SELECT¨campo1, campo2, campo3, (select campox from tabla_x where tabla.campo4 = campo4) asl 'algo' ... (10 listados mas) .... from contacto where campo1 = 'blabla' and campo2 > 2 and campo3 between fecha1 and fecha2 and cod_contacto in (subconsulta_problematica)
es decir necesariamente tiene que ser una subconsulta