Ver Mensaje Individual
  #1  
Antiguo 10-12-2012
Theluar Theluar is offline
Miembro
NULL
 
Registrado: ago 2011
Posts: 44
Reputación: 0
Theluar Va por buen camino
Consultas multiples en una tabla con mysql?

Hola a todos!, estoy trabajando en un programa que me arroje en un TDBGrid la consulta de un horario de materias, en donde quisiera que se mostrasen de la siguiente manera:

Horario | Lunes | Martes | Miércoles | ...
7-8......| MAte | ingles ..|etc...
8-9......| Fisica | etc...

Se tienen las siguientes tablas creadas en la BD Mysql :

horario(1) se encuentran alojados los hararios existenes
-id
-inicio //hora inicial
-fin //hora final

día(2) se encuentran alojados los dias existentes.
-id
-nom //Lun,Mart,ect

materia(3) // se encuentran alojadas las materias existentes
- id
- nom//mate,ingles,etc...

asignaciones(4) //asignaciones de materias horas, etc
-id
-id_hora
-id_materia
-id_dia


como puedo realizar la consulta para que la tabla me aparezca como la deseo.?

he tratado usando lo siguiente :
Código SQL [-]
(SELECT Concat(hora.inicio,' ', hora.fin) as Horario, mat.nom as Lunes , FROM asignaciones a
left outer join dia d
   on a.id_dia=d.id_dia
left outer join horario hora
   on a.id_hora=hora.id_hora
left outer join materia mat
   on a.id_materia=mat.id_materia
Where d.nom='Lunes ') //Nombre del Dia.

UNION

(SELECT Concat(hora.inicio,' ', hora.fin) as Horario, mat.nom as Lunes , FROM asignaciones a
left outer join dia d
   on a.id_dia=d.id_dia
left outer join horario hora
   on a.id_hora=hora.id_hora
left outer join materia mat
   on a.id_materia=mat.id_materia
Where d.nom='Martes ') //Nombre del Dia.

//etc,etc,

El Problema e que el UNION solo me combina los campos

y todas las materias me las muestra en el día lunes, eliminando todos los demás días.

quiero saber si existe alguna manera de unir columnas de varias consultas o alguna idea de como efectuar lo anteriormente descrito..


de antemano muchas gracias por su ayuda.
Responder Con Cita