Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   consulta mysql que no logro entender (https://www.clubdelphi.com/foros/showthread.php?t=77618)

gulder 11-02-2012 23:21:05

consulta mysql que no logro entender
 
bueno aquí molestándolos un poco resulta que tengo las siguientes tablas carga académica y horario sus estructuras son las siguientes

ahora tengo la siguiente tabla carga academica y quiero seleccionar del horario solo las materias en las que un determinado docente dicta clases osea el horario por docente quiero que me muestre en el horario de lunes a viernes y en que horas le toca dar clases al profesor seleccionado, en carga académica temgo la informacion de las materias dictadas por cada profesor y en horario tengo la distribucion de las materias durante las semana, lo que quiero q me traiga la consulta son las materias que dicta el profesor durante la semana ubicadas en el horario que ya esta definido,





con esta consulta que coloco a continuación me trae las amterias de dicho profesor para el dia miercoles, pero tengo dos problemas el primero no se como hacerle para que me los traiga para todos los dias y segundo, me trae las materias que no corresponden al profesor no se como encarar este problema espero sugerencias
Código SQL [-]
SELECT  horario.Hora,
        IFNULL(LU.nombre_asignatura,'RECREO'),
        IFNULL(MA.nombre_asignatura,'RECREO'),
        IFNULL(MI.nombre_asignatura,'RECREO'),
        IFNULL(JU.nombre_asignatura,'RECREO'),
        IFNULL(VI.nombre_asignatura,'RECREO'),
        IFNULL(SA.nombre_asignatura,'RECREO'),
        IFNULL(DM.nombre_asignatura,'RECREO')

FROM cargaacademica,horario

LEFT JOIN asignaturas AS LU ON LU.id_asignatura = horario.lunes
LEFT JOIN asignaturas AS MA ON MA.id_asignatura = horario.martes
LEFT JOIN asignaturas AS MI ON MI.id_asignatura = horario.miercoles
LEFT JOIN asignaturas AS JU ON JU.id_asignatura = horario.jueves
LEFT JOIN asignaturas AS VI ON VI.id_asignatura = horario.viernez
LEFT JOIN asignaturas AS SA ON SA.id_asignatura = horario.sabado
LEFT JOIN asignaturas AS DM ON DM.id_asignatura = horario.domingo

WHERE horario.id_sede = cargaacademica.id_sede AND
      horario.id_jornada = cargaacademica.id_jornada AND
      horario.id_grado = cargaacademica.id_grado AND
      horario.Grupo = cargaacademica.grupo AND
      horario.miercoles = cargaacademica.id_asignatura AND
      cargaacademica.cedula = '383889'

gracias de antemano gulder

gulder 13-02-2012 13:13:53

hola foro como estan con esta consulta logro seleccionar parte de lo que quiero, pero no me lo hace completo pues estoy teniendo problemas puesto que en el dia martes el rpofesor da la materia con el id 117 pero no me muetsra la hora y me debe mostrar dos veces el id 117 puesto que el dia martes da dos horas de esa materia pero no me lo esta mosmtrando, la cedula se refiere al id del docente para este caso estoy haciendolo para el docente con id = 383889 y lo que me arroja la consulta que coloco a continuacion es lo siguiente

Código SQL [-]
SELECT  lu.Hora,lu.Inicio,lu.fin,lu.lunes,ma.martes
FROM cargaacademica 
LEFT JOIN horario AS lu on cargaacademica.id_asignatura = lu.lunes
LEFT JOIN horario AS ma on cargaacademica.id_asignatura = ma.martes
WHERE cargaacademica.cedula='383889'


esto es lo que quiero que me arroje la consulta las materias ubicadas en el horario por profesor, osea las que dicta cada profesor


gulder 14-02-2012 14:54:51

hola foro como estan

Código SQL [-]
SELECT  horario.Hora,horario.Inicio,horario.fin,horario.lunes,horario.martes,horario.miercoles
FROM horario 
LEFT JOIN cargaacademica AS lu on lu.id_asignatura = horario.lunes 
LEFT JOIN cargaacademica AS ma on ma.id_asignatura = horario.martes 
LEFT JOIN cargaacademica AS mi on mi.id_asignatura = horario.miercoles 
WHERE lu.cedula='383889' OR ma.cedula='383889' OR mi.cedula='383889'


con la siguiente consulta hace la mitad del trabajo lo que hace mal es que me trae el resto de elementos de la fila de registros, como hago para que no trajera estos elementos, que los omita o los ponga a null miren la siguiente imagen y se dan cuenta de lo que digo cordial saludo




La franja horaria es GMT +2. Ahora son las 11:54:24.

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