Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/11/2009, 15:31
Hypocrisy
 
Fecha de Ingreso: noviembre-2009
Mensajes: 13
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema query

Cita:
Iniciado por gnzsoloyo Ver Mensaje
¿Has probado algo así?:
Código SQL:
Ver original
  1. SELECT DISTINCT
  2.   C.codi_empl,
  3.   C.nom_empl,
  4.   IF(nom_rest IS NULL, 'NO CONTRATADO', nom_rest) nom_rest,
  5.   IF(nom_rest IS NULL, '', num_estrelles) num_estrelles
  6. FROM
  7.   empl_rest C
  8.   LEFT JOIN empleats E USING(codi_empl)
  9.   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.