Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Tema Cerrado
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-02-2012
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 20
gulder Va por buen camino
consulta horario de clases mysql

hola aforo como estas espero que bien

bueno aquí molestándolos un poco resulta que tengo las siguientes tablas asignaturas y horario sus estructuras son las siguientes





despues de hacer esta consulta


me retorna los siguientes valores


hasta hay todo bien el problema que tengo es que en el horario no quiero que me muestre el id de la asignatura en los dias del horario si no el nombre de la asignatura a que corresponde ese id, pero no se como hacerle a la consulta espero alguna ayuda de parte de ustedes cordialmente gulder
  #2  
Antiguo 10-02-2012
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
yo te recomiendo usar JOINS

algo asi como esto

Código Delphi [-]
 
Select T1.Campos, T2.Campos, T3.Campos
from Tabla1 t1
Left JOIN Tabla2 T2 on T1.CampoComun = T2.CamopComun
Left JOIN Tabla3 T3 on T2.CampoComun = T3.CampoComun
where....

es mucho mas ordenado que invocar a todas las tablas en el from
__________________
Dulce Regalo que Satanas manda para mi.....
  #3  
Antiguo 10-02-2012
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 20
gulder Va por buen camino
oscarac gracias por responder, me tocaria leer un poco pues la verdad no se usar los JOIN gracias men
  #4  
Antiguo 10-02-2012
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por gulder Ver Mensaje
oscarac gracias por responder, me tocaria leer un poco pues la verdad no se usar los JOIN gracias men
es sencillo, se trata basicamente de "relacionar", "unir", "traer" los datos de una o mas tablas en una consulta
y las "unes" en funcion al campo en comun

busca informacion sobre eso.. veras que es facil
__________________
Dulce Regalo que Satanas manda para mi.....
  #5  
Antiguo 10-02-2012
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 20
gulder Va por buen camino
listo men gracias muy agradecido
  #6  
Antiguo 10-02-2012
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por gulder Ver Mensaje
listo men gracias muy agradecido
si lo resolviste o cuando lo resuelvas.....

seria bueno que coloques la solucion.. para que alguien mas pueda verlo en caso tenga un problema pareido
__________________
Dulce Regalo que Satanas manda para mi.....
  #7  
Antiguo 10-02-2012
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 20
gulder Va por buen camino
listo no hay problema, no le he resuelto desde la consulta lo resolví desde el programa utilizando una tabla y un vector, recurriendo cada id e intercambiándolo en una tabla, pero no me parece la mejor solución por tal motivo estoy investigando hacerlo desde la misma consulta gracias men
  #8  
Antiguo 10-02-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Y ¿por qué no te ha salido en la consulta?

Según entiendo, cada campo lunes, martes, miercoles, jueves, viernes es el ID de una asignatura. Entonces, lo que tienes que hacer es un join por cada día con la tabla de asignaturas, usando alias:

Código SQL [-]
select
  ...
  LU.nombre_asignatura, MA.nombre_asignatura, MI.nombre_asignatura, JU.nombre_asignatura, VI.nombre_asignatura,
  ...
from ...
...
left join asignatura LU on LU.id_asignatura = horario.lunes
left join asignatura MA on MA.id_asignatura = horario.martes
left join asignatura MI on MI.id_asignatura = horario.miercoles
left join asignatura JU on JU.id_asignatura = horario.jueves
left join asignatura VI on VI.id_asignatura = horario.viernes
...

Por cierto, viernes se escribe con s al final.

// Saludos
  #9  
Antiguo 10-02-2012
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 20
gulder Va por buen camino
roman claro que si cada lunes , martes, miercoles es id de asignatura, voy a probar lo que dices aver que tal, gracias por corregirme el error de escritura en viernes saludos
  #10  
Antiguo 10-02-2012
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 20
gulder Va por buen camino
ya esta la solucion

Código:
SELECT horario.Hora,horario.Inicio,horario.fin,horario.duracion,
       LU.nombre_asignatura,MA.nombre_asignatura,MI.nombre_asignatura,JU.nombre_asignatura,VI.nombre_asignatura
FROM sede,jornada,grado,horario 
left join asignaturas LU on LU.id_asignatura = horario.lunes
left join asignaturas MA on MA.id_asignatura = horario.martes
left join asignaturas MI on MI.id_asignatura = horario.miercoles
left join asignaturas JU on JU.id_asignatura = horario.jueves
left join asignaturas VI on VI.id_asignatura = horario.viernez
WHERE horario.id_sede ='24' AND 
horario.id_jornada ='0' AND 
horario.id_grado ='4' 
AND horario.grupo ='1' 
GROUP BY horario.Hora, horario.Inicio, horario.fin, horario.duracion, horario.lunes, horario.martes, horario.miercoles, horario.jueves, horario.viernez, horario.sabado, horario.domingo 
ORDER BY horario.ids

  #11  
Antiguo 10-02-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Para que quede más bonito, puedes usar alias también para los nombres de los campos:

Código SQL [-]
select
  ...
  LU.nombre_asignatura lunes, MA.nombre_asignatura martes, MI.nombre_asignatura miercoles ...
  ...
from ...

// Saludos
  #12  
Antiguo 11-02-2012
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 20
gulder Va por buen camino
es correcto gracias roman muy amable
  #13  
Antiguo 11-02-2012
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 20
gulder Va por buen camino
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




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'
  #14  
Antiguo 11-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Recuerda nuestra guía de estilo, preguntas distintas en hilos distintos, crea uno nuevo, gracias.

Ya que habías solucionado la anterior pregunta, voy a cerrar el tema, si algún moderador lo cree conveniente, que lo abra de nuevo.
Tema Cerrado



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
validar dbedit para horario gonza_619 Varios 3 12-12-2010 10:15:03
Activar Botones por horario jandres OOP 3 23-03-2010 18:24:49
Cambio de horario roman La Taberna 1 11-04-2007 22:33:21
Ajustes de horario Javier_A Varios 1 30-06-2004 13:31:18
En que horario prefieres programar? DarkSide Debates 19 11-02-2004 18:34:14


La franja horaria es GMT +2. Ahora son las 19:17:14.


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
Copyright 1996-2007 Club Delphi