Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/08/2010, 14:19
Avatar de silvanha
silvanha
 
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 8 meses
Puntos: 65
Consultar de 3 tablas

Hola Chicos,

Debe ser para uds. algo totalmente trivial, pero la verdad es que para mi no =D

Sucede que tengo 6 tablas, Alum_Datos, Alum_Direc, Alum_Tutor, Catalogo_Carrera, Catalogo_Estados, Catalogo_Municipio, con datos de mis alumnos. Lo que necesito es consultar de acuerdo a su matricula, eso ya lo tengo, lo que me viene trabando las ideas es como sustituir la clave foranea del Estado, Municipio y Carrera en la consulta.



La consulta mostrandome los datos es esta, y funciona bien:

Código:
SELECT a.Alum_AP,a.Alum_AM,a.Alum_Nombre,
       d.Alum_Calle,d.Alum_No, d.Alum_Colonia,
       d.Alum_CP, d.Id_Municipio, d.Id_Estado,
       d.Alum_Pais, a.Alum_Tel_Casa, a.Alum_Tel_Cel,
       a.Alum_Fecha_Nac, a.Alum_Lugar_Nac, a.Alum_Sexo,
       a.Alum_No_Solicitud,a.Alum_Puntaje_obt,
       a.Id_Carrera,
       t.Tutor_AP, t.Tutor_AM, t.Tutor_Nombre,
       t.Tutor_Calle, t.Tutor_Numero, t.Tutor_Colonia,
       t.Id_Municipio, t.Id_Estado, t.Tutor_Tel_Casa,
       t.Tutor_Tel_Cel
FROM alumno_datos a, alumno_direc d, alumno_tutor t 
WHERE a.Id_Alumno = '20T107557'
  and d.Id_Alumno = a.Id_Alumno
  and t.Id_Alumno = a.Id_Alumno;
Lo que necesito es sustituir el Id_Municipio, Id_Estado e Id_Carrera por el nombre respectivo, lo que también me produce problema es que el Id_Municipio e Id_Estado también lo uso para la tabla Alum_Tutor.

Código:
SELECT a.Alum_AP,a.Alum_AM,a.Alum_Nombre,
       d.Alum_Calle,d.Alum_No, d.Alum_Colonia,
       d.Alum_CP, cm1.Nombre_Municipio, cm2.Nombre_Estado,
       d.Alum_Pais, a.Alum_Tel_Casa, a.Alum_Tel_Cel,
       a.Alum_Fecha_Nac, a.Alum_Lugar_Nac, a.Alum_Sexo,
       a.Alum_No_Solicitud,a.Alum_Puntaje_obt,
       cm5.Carrera_Nombre,
       t.Tutor_AP, t.Tutor_AM, t.Tutor_Nombre,
       t.Tutor_Calle, t.Tutor_Numero, t.Tutor_Colonia,
       cm4.Nombre_Municipio, cm3.Nombre_Estado, t.Tutor_Tel_Casa,
       t.Tutor_Tel_Cel
FROM alumno_datos a, alumno_direc d, alumno_tutor t 
LEFT JOIN catalogo_municipio AS cm1 ON d.Id_Municipio = cm1.Nombre_Municipio
LEFT JOIN catalogo_estados AS cm2 ON d.Id_Estado = cm2.Nombre_Estado
LEFT JOIN catalogo_estados AS cm3 ON t.Id_Estado = cm3.Nombre_Estado
LEFT JOIN catalogo_municipio AS cm4 ON t.Id_Municipio = cm4.Nombre_Municipio
LEFT JOIN catalogo_carrera AS cm5 ON a.Id_Carrera = cm5.Carrera_Nombre
WHERE a.Id_Alumno = '20T107557'
  and d.Id_Alumno = a.Id_Alumno
  and t.Id_Alumno = a.Id_Alumno;
Me marca error en el primer LEFT JOIN, y según mis ideas locas es porque ando comparando cosas que no debo como el Id_Municipio con el nombre.. la duda es, ¿Entonces como lo establezco?

De antemano mil gracias!! ^^

Espero haberme explicado..