¿Has probado algo así?:
Código SQL:
Ver originalSELECT DISTINCT
C.codi_empl,
C.nom_empl,
IF(nom_rest IS NULL, 'NO CONTRATADO', nom_rest) nom_rest,
IF(nom_rest IS NULL, '', num_estrelles) num_estrelles
FROM
empl_rest C
LEFT JOIN empleats E USING(codi_empl)
LEFT JOIN restaurants R USING(codi_rest);
Eso debería devolver todos los empleados de la base, con sus nombres )siempre y cuando la tabla EMPL_REST contenga efectivamente el nombre, y devolver "NO CONTRATADO", si no está vinculado a ningún restaurante (según lo que se infiere) que figure en la tabla EMPLEATS.