Cita:
Iniciado por gnzsoloyo ¿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.
Se me olvido decir que los empleados no contratados no tienen ningun null para el asignamiento de restaurante..directamente no tiene ningun codigo de asignamiento (nose si me explico) Ejemplo de la tabla:
Empleados:
codi, nom, data naixement, sexe, codi pais
INSERT INTO Empleats VALUES(11,"Juan Pujol","01-09-1967","M",1);
INSERT INTO Empleats VALUES(12,"Pedro Ripoll","05-16-1974","M",4);
INSERT INTO Empleats VALUES(13,"Esther Gimenez","09-23-1977","W",3);
INSERT INTO Empleats VALUES(14,"José Gomez","08-21-1970","M",7);
Empleados contratados:
codi restaurant, codi empleat, codi categoria, data alta
INSERT INTO Empl_rest VALUES(7,9,5,"03-30-2008");
INSERT INTO Empl_rest VALUES(10,10,3,"03-14-1997");
INSERT INTO Empl_rest VALUES(11,11,5,"12-07-1994");
INSERT INTO Empl_rest VALUES(12,12,5,"11-02-2001");
COMMIT WORK;
Como veis los empleados 13 y 14 no estan "contratados"
Yo lo unico que quiero es que salga el nombre y el apellido de los dos empleados no contratados y que no salgan los nombres de los restaurantes.