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

Consulta un mismo campo varias opciones

Estas en el tema de Consulta un mismo campo varias opciones en el foro de Mysql en Foros del Web. Hola, tengo una tabla con la siguiente esctructura ID_profe / Dia / Hora Inicio / Hora Fin 2 / Lunes / 12 / 15 2 ...
  #1 (permalink)  
Antiguo 05/08/2015, 12:01
 
Fecha de Ingreso: abril-2003
Mensajes: 260
Antigüedad: 21 años
Puntos: 1
Consulta un mismo campo varias opciones

Hola, tengo una tabla con la siguiente esctructura

ID_profe / Dia / Hora Inicio / Hora Fin
2 / Lunes / 12 / 15
2 / Martes / 12 / 20
3 / Miercoles 9 / 12

etc


Ahora bien yo hago una consulta donde mediante un formulario busco que registros de mi tabla hay disponibles para por ejemplo:

Lunes 10 a 12
Martes 16 a 18

el problema es que mi consulta es de la siguiente forma:

Código SQL:
Ver original
  1. SELECT * FROM horarios WHERE inicio <= $lun1 AND fin >= $lun2 AND dia='Lunes' AND inicio <= $mar1 AND fin >= $mar2 AND dia = 'Martes';


Osea yo necesito que sea AND, no uno u otro, el problema es que a un mismo campo le 2 dos resultados posibles...tanto al dia, inicio y fin.

No se me ocurre como poder hacerlo...

Gracias!!
__________________
Bye!
  #2 (permalink)  
Antiguo 06/08/2015, 05:50
 
Fecha de Ingreso: febrero-2006
Mensajes: 155
Antigüedad: 18 años, 2 meses
Puntos: 6
Respuesta: Consulta un mismo campo varias opciones

Hola, tú mismo diste la respuesta :)

Los "AND" son todas las condiciones necesarias, por lo tanto, no necesitas conseguir datos que cumplan todas esas condiciones, sino que necesitas registros que:

Sean del día lunes de 10 a 12
O
Sean del día martes de 16 a 18

Por lo tanto debes usar paréntesis y usar un OR

WHERE ( inicio <= $lun1 and fin >= $lun2 and dia = 'Lunes' ) OR ( inicio <= $mar1 and fin >= $mar2 and dia = 'Martes' );

Saludos!
  #3 (permalink)  
Antiguo 06/08/2015, 07:05
 
Fecha de Ingreso: abril-2003
Mensajes: 260
Antigüedad: 21 años
Puntos: 1
Respuesta: Consulta un mismo campo varias opciones

hola, gracias por la ayuda, pero lo que quiero es que cumpla las 2 condiciones. No una u otra.

gracias!
__________________
Bye!
  #4 (permalink)  
Antiguo 06/08/2015, 07:28
 
Fecha de Ingreso: febrero-2006
Mensajes: 155
Antigüedad: 18 años, 2 meses
Puntos: 6
Respuesta: Consulta un mismo campo varias opciones

Hola, te acabo de entender.

Creo que en primer lugar deberías obtener qué profesores tienen disponibilidad ambos días en esas horas y después consultar por sus horarios, pienso en algo así:
Código MySQL:
Ver original
  1. select * from horarios where ID_profe IN ( select ID_profe FROM horarios WHERE inicio <= $lun1
  2. AND fin >= $lun2 AND dia='Lunes' AND inicio <= $mar1 AND fin >= $mar2 AND dia = 'Martes')
  3. AND  (( inicio <= $lun1 and fin >= $lun2 and dia = 'Lunes' )
  4. OR ( inicio <= $mar1 and fin >= $mar2 and dia = 'Martes' ));

Última edición por gnzsoloyo; 06/08/2015 a las 07:30 Razón: Legibilidad de codigo.
  #5 (permalink)  
Antiguo 06/08/2015, 08:06
 
Fecha de Ingreso: abril-2003
Mensajes: 260
Antigüedad: 21 años
Puntos: 1
Respuesta: Consulta un mismo campo varias opciones

Entiendo, ahora no deberia dentro del IN, separar las opciones con , en lugar de AND?
Lo intente pero me da error como digo yo, y de tu forma no muestra resultados, cuando deberia.

:(

Gracias
__________________
Bye!
  #6 (permalink)  
Antiguo 06/08/2015, 09:07
 
Fecha de Ingreso: abril-2003
Mensajes: 260
Antigüedad: 21 años
Puntos: 1
Respuesta: Consulta un mismo campo varias opciones

Utilice en ves de AND, UNION...
me quedo asi...


Código MySQL:
Ver original
  1. FROM horarios
  2. WHERE id_profe
  3. IN (
  4. SELECT id_profe
  5. FROM horarios
  6. inicio <=  '$lun1'
  7. AND fin >=  '$lun2'
  8. AND dia =  'Lunes'
  9. SELECT id_profe
  10. FROM horarios
  11. inicio <=  '$mar1'
  12. AND fin >=  '$mar2'
  13. AND dia =  'Martes'
  14. ) GROUP BY id_profe

pero sigue encontrando resultados que no siempre incluye las 2 opciones...no se xq :(
__________________
Bye!
  #7 (permalink)  
Antiguo 06/08/2015, 10:38
 
Fecha de Ingreso: febrero-2006
Mensajes: 155
Antigüedad: 18 años, 2 meses
Puntos: 6
Respuesta: Consulta un mismo campo varias opciones

Disculpa, usé tu misma consulta pensando que funcionaba (copiar y pegar)
Además asumí que querías buscar los horarios y no sólo los profesores disponibles en esos horarios.

Si me pudieras explicar más con un ejemplo qué es lo que quieres obtener y qué debería resultar en la consulta, podría ayudarte a generar una solución.

Saludos!

Etiquetas: campo, opciones, registro, select, tabla
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 09:01.