Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta en base de datos relacionadas

Estas en el tema de Consulta en base de datos relacionadas en el foro de Mysql en Foros del Web. Tengo las siguientes tablas en mi base de datos: Facultad( Codfac,Nombre) Escuela(CodEsc, Nombre,Codfac) Profesor( IdProf, CedProf, Nombre, Apellido,telefono_celular,telefono_habitacion, telefono_oficina, email,direccion_hab,estatus, escalafon,CodigoEsc) donde escalafon(Activo,Jubilado) Relaciones: Facultad ...
  #1 (permalink)  
Antiguo 24/02/2008, 18:30
 
Fecha de Ingreso: septiembre-2007
Mensajes: 44
Antigüedad: 16 años, 7 meses
Puntos: 0
Consulta en base de datos relacionadas

Tengo las siguientes tablas en mi base de datos:

Facultad( Codfac,Nombre)
Escuela(CodEsc, Nombre,Codfac)
Profesor( IdProf, CedProf, Nombre, Apellido,telefono_celular,telefono_habitacion, telefono_oficina, email,direccion_hab,estatus, escalafon,CodigoEsc)

donde escalafon(Activo,Jubilado)

Relaciones:

Facultad tiene Escuela 1:N
Escuela posee Profesores 1:N

Me piden listar los datos de los profesores jubilados por facultad(Es decir que en la tabla resulatante me salga el nombre de la facultas a la cual pertenece)

Mi posible solucion es esta:
Select * from profesor where estatus="jubilado" group by CodEsc

Este me muestra los profesores jubilados ordenados por codigo de escuela pero eso esparte de lo que quiero como haria para que muestre la facultad.Estoy atascado en este query por favor denme una ayuda. Gracias por anticipado
  #2 (permalink)  
Antiguo 25/02/2008, 17:38
 
Fecha de Ingreso: mayo-2006
Mensajes: 120
Antigüedad: 17 años, 11 meses
Puntos: 3
Re: Consulta en base de datos relacionadas

Te lo planteo como joins
Código:
SELECT Facultad.nombre, profesor.* from profesor
LEFT JOIN escuela ON escuela.codesc = profesor.codigoesc
LEFT JOIN facultad ON escuela.codfac = facultad.codfac
where profesor.estatus = "jubilado" group by profesor.codigoesc
También te gustaría googlear un poco sobre subquerys que te harán entender mejor la idea.

Espero que te sirva saludos.
__________________
programación php
  #3 (permalink)  
Antiguo 26/02/2008, 00:12
 
Fecha de Ingreso: septiembre-2007
Mensajes: 44
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Consulta en base de datos relacionadas

Ese query me parece muy bueno gracias. NO sabia que se podian hacer dos joins en el mismo query,lo intente pero con uno solo y mi resultado fue parecido pero no llegaba a la facultad.Respecto a las subconsultas hice lo sgte:

SELECT *
FROM profesor
WHERE estatus = 'jubilado'
AND CodigoEsc = ANY(

SELECT CodEsc
FROM escuela
WHERE Codfac = ANY(

SELECT Codfac
FROM facultad
GROUP BY Nombre
)
)

Corrijanme si me equivoque pero se que estoy cerca,bueno hasta luego y de nuevo Gracias.
  #4 (permalink)  
Antiguo 26/02/2008, 06:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Re: Consulta en base de datos relacionadas

¿Probaste algo así?:
Código:
SELECT *
FROM profesor 
INNER JOIN escuela USING (CodEsc)
INNER JOIN facultad USING (Confac)
WHERE estatus = 'jubilado';
  #5 (permalink)  
Antiguo 03/03/2008, 08:42
 
Fecha de Ingreso: septiembre-2007
Mensajes: 44
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Consulta en base de datos relacionadas

Me da error #1054 - Unknown column 'CodEsc' in 'from clause'.No me dijeron sobre la subconsulta que puse anteriormente,con eso me estoy moviendo a la Facultad por medio de la clave foranea de la tabla escuela,pero no entiendo x que no me funciona.Q opinan? denme x favor una autorizacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:11.