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

Ayuda con INNER JOIN

Estas en el tema de Ayuda con INNER JOIN en el foro de Mysql en Foros del Web. Hola, tengo la siguiente consulta, que funciona correctamente: SELECT alumnos.matricula, apellido, nombre, ganancia_profesor, fecha_baja, id_alumno, horarios.id_horario FROM horarios INNER JOIN alumnos ON horarios.id_horario = alumnos.id_horario ...
  #1 (permalink)  
Antiguo 09/04/2010, 08:03
 
Fecha de Ingreso: octubre-2007
Mensajes: 267
Antigüedad: 16 años, 5 meses
Puntos: 1
Ayuda con INNER JOIN

Hola, tengo la siguiente consulta, que funciona correctamente:

SELECT alumnos.matricula, apellido, nombre, ganancia_profesor, fecha_baja, id_alumno, horarios.id_horario
FROM horarios
INNER JOIN alumnos ON horarios.id_horario = alumnos.id_horario
INNER JOIN matriculas ON alumnos.matricula = matriculas.matricula

WHERE id_profesor = $this->id_profesor
AND id_curso = $id_curso
AND (fecha_baja = '0000-00-00' or (fecha_baja > '$aAnt-$mAnt-00' and fecha_baja < '$aAct-$mAct-32'))
ORDER BY apellido, nombre

Pero quiero hacer una reforma para obtener tambien el campo observaciones de una tabla adicional relacionada, y escribo el siguiente código, que -erroneamente- no devuelve registros:

SELECT alumnos.matricula, apellido, nombre, ganancia_profesor, fecha_baja, id_alumno, horarios.id_horario, cursos.observaciones
FROM horarios
INNER JOIN alumnos ON horarios.id_horario = alumnos.id_horario
INNER JOIN matriculas ON alumnos.matricula = matriculas.matricula
INNER JOIN cursos ON horarios.id_curso = cursos.id_curso
WHERE id_profesor = $this->id_profesor
AND id_curso = $id_curso
AND (fecha_baja = '0000-00-00' or (fecha_baja > '$aAnt-$mAnt-00' and fecha_baja < '$aAct-$mAct-32'))
ORDER BY apellido, nombre

lo unico que hice fue seleccionar el campo observaciones de la tabla Cursos, y agregar a la combinacion la tabla del mismo nombre donde el id_curso sea conicidente con el id del mismo nombre en la tabla Horarios.

Pero ya me sacó canas verdes. Probé de muchas maneras y no puedo hacerlo funcionar.

Alguien me puede ayudar??
  #2 (permalink)  
Antiguo 09/04/2010, 12:53
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ayuda con INNER JOIN

Me centraré donde creo que está el problema.
No veo muy lógico que hagas el cruce así:... INNER JOIN cursos ON horarios.id_curso = cursos.id_curso.
Imagino que tendrás un campo del alumno matriculado en un curso
... INNER JOIN cursos ON alumnos.id_curso = cursos.id_curso

si tienes algo así y pruebas esa parte en lugar de la otra tal vez funcione. El centro es el alumno, su matrícula, su matrícula en un curso y el horario de ese curso.

Etiquetas: join
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 03:08.