Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Consulta anidada complicada (https://www.clubdelphi.com/foros/showthread.php?t=43438)

Albano 11-05-2007 04:25:44

Consulta anidada complicada
 
Hola a todos! que tenga un buen dia, Dios les bendiga.
Tengo que realizar la siguiente consulta en mi base de datos:
Cita:

Lista de empleados y los proyectos en los que trabajan
a simple vista parece algo muy sencillo, pero soy novato en esto y no se si me esté haciendo bolas de oque. Les voy a explicar lo que hice.
Tengo 4 tablas en mi base de datos:
  • departamento
  • empleados (datos de los empleados: numero, nombre, apellido, depto, etc)
  • proyecto (datos de los proyectos: numero, nombre, descripción, etc)
  • trabajos (relación de empleados con los proyectos: num_emp, num_pro) (esta es para saber qué empleado esta participando en qué proyecto)
Para esta consulta usaría tres de esas tablas: empleados, proyecto y trabajos.
Con una consulta como la siguiente:
Código SQL [-]
select * from trabajos order by num_emp
me arroja lo que necesito en claves, clave del empleado y clave del proyecto, pero los necesito con sus nombres, nombre del empleado, apellido del empleado y nombre del proyecto. Como lo puedo hacer?
Pensé en la siguiente instrucción:
Código SQL [-]
select nombre, apellido
from empleados
where numero in
(select num_emp 
from trabajos
order by num_emp);
Pero no es suficiente por dos razones: me faltan los datos del proyecto y solo aparece una vez cada empleado aunque participe en 2 o 3 proyectos.
Que tengo que hacer?

Albano 11-05-2007 09:37:35

Problema resuelto!!!
 
Me estaba complicando de oque, como les había dicho que sospechaba en el mensaje anterior... aqui esta la solución a mi problema:
Código SQL [-]
select empleados.nombre, apellido, proyecto.nombre, depto
from empleados, proyecto, trabajos
where empleados.numero = num_emp and proyecto.numero = num_pro
order by depto, empleados.nombre, apellido;
me faltaba mencionar la parte del order by, pero eso sí sabía hacerlo.
Pues gracias a los que prestaron interés.


La franja horaria es GMT +2. Ahora son las 18:22:31.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi