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

JOIN de 2 tablas y 7 columnas

Estas en el tema de JOIN de 2 tablas y 7 columnas en el foro de Mysql en Foros del Web. Hola, mi consulta es la siguiente, busque por todos lados pero parece que a nadie se le presento mi problema. Tengo 2 tablas. La primera ...
  #1 (permalink)  
Antiguo 01/09/2008, 17:43
 
Fecha de Ingreso: septiembre-2008
Mensajes: 4
Antigüedad: 15 años, 7 meses
Puntos: 0
JOIN de 2 tablas y 7 columnas

Hola, mi consulta es la siguiente, busque por todos lados pero parece que a nadie se le presento mi problema.

Tengo 2 tablas.

La primera "horarios" con los 7 dias de la semana (lu, ma, mi....).
La segunda "materias" con 2 columnas id (id_mat) y Materia (mat).

En la primer tabla guardo el id de la materia en un dia

LU-MA-MI-JU-VI-SA-DO
0--3--0--0--0--0--0

Ahora el 3 es la materia "PHP" lo que yo hago es

Código:
SELECT materias.mat AS lu, materias.mat AS ma FROM horarios 
LEFT JOIN materias ON horarios.lu = materias.id_mat OR 
horarios.ma = materias.id_mat
Lo que me sale es:

LU--MA--MI--JU--VI--SA--DO
PHP-PHP-PHP-PHP-PHP-PHP-PHP

Osea me da PHP en todas las columnas y yo lo que busco es que me de PHP solo en el Martes y null en las otras.

LU---MA---MI---JU---VI---SA---DO
null-PHP-null-null-null-null-null

Si a alguien se le ocurre como hacerlo desde ya muchas gracias.
  #2 (permalink)  
Antiguo 01/09/2008, 18:19
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: JOIN de 2 tablas y 7 columnas

Hola juanem1
Me parece que has estructurado muy mal tu tabla
¿La tabla Horario cual es su ID?

Seria mas conveniente que crees tus tablas con fechas y a esas fechas le asignes el curso, ya luego en la consulta según la fecha se puede llegar a saber que día es.

de la manera que estas haciendo te vas enredar mas.

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #3 (permalink)  
Antiguo 01/09/2008, 18:35
 
Fecha de Ingreso: septiembre-2008
Mensajes: 4
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: JOIN de 2 tablas y 7 columnas

Gracias Genetix por tu respuesta.

La tabla de horarios si tiene un id que es el del usuario pero solo me sirve para saber que registro es de quien, pero no me afecta en esta consulta.

Yo creo que esta seria la forma mas facil de estructurar la base de lo contrario tendria que crear muchas tablas o en su defecto hacer mas consultas.

Lo que busco es hacer la menor cantidad de consultas = Gracias.
  #4 (permalink)  
Antiguo 02/09/2008, 01:45
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: JOIN de 2 tablas y 7 columnas

Prueba con lo que tienes esto:

SELECT horarios.dia, materias.mat
FROM horarios
LEFT JOIN materias ON horarios.idmat = materias.idmat

Pero pienso como Genetix. Si el lunes tienes dos asignaturas cómo lo pones, con otro registro para LU con el número de la nueva asignatura. En todo caso, sería más conveniente una tabla con los días, con su ID; una tabla con las materias, con su ID, y una tercera tabla para las materias por día, con los ID de día y materia. De todas formas, tendrías que darnos más información sobre lo que quieres hacer para aconsejarte campos tipo date, como ha hecho Genetix, y si fuera necesario. Lo importante, creo, no es el número de consultas necesarias y la dificultad de las mismas, sino una buena estructura de base relacional. Lo otro vendrá después.
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 01:35.