Ok, el detalle de que la foto sea
opcional era relevante. Eso lo tendrías que haber explicado desde el inicio, porque afecta la solución.
Hay mas de una solución posible, pero esta sería una:
Código SQL:
Ver originalSELECT
D.referencia,
U.familia,
U.situacion1,
U.precio,
U.metros,
U.habitaciones,
U.CodigoPostal,
P.nombre_poblacion,
E.titulo,
E.descripcion,
F.foto
FROM
t_destacats D
INNER JOIN
t_un U ON D.referencia = U.referencia
INNER JOIN
t_poblacion P ON U.poblacion = P.id_poblacion
INNER JOIN
t_es E ON U.id_piso = E.id_piso
LEFT JOIN
(SELECT * FROM t_fotos GROUP BY referencia) F ON D.referencia = F.referencia
WHERE
D.id_cat = 3
OR F.referencia IS NULL
ORDER BY D.ordre;
Pruebalo y vemos.