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.