Un caluroso saludo Rayo, mira puse en ejecución el código que me diste y sintácticamente funciona:
Código SQL
[-]SELECT
horario_detalle.id_horariodet,
horario_detalle.posIniGrid,
horario_detalle.posFinGrid
FROM
horario_detalle
INNER JOIN curso ON horario_detalle.idcurso_fk = curso.id_curso
WHERE
horario_detalle.idsemestre_fk = 1 AND
horario_detalle.idcurr_fk = 1 AND
horario_detalle.idfacultad_fk = 1 AND
horario_detalle.iddptoacad_fk = 1 AND
horario_detalle.iddia = 1 AND
((horario_detalle.posIniGrid>=0 AND horario_detalle.posFinGrid<=2)
OR
(horario_detalle.posIniGrid>=0 AND horario_detalle.posFinGrid<=2)) AND
curso.ciclo = 10
Aquí asumo que un horario nuevo se quiere instalar el iddia=1 (Martes) entre las horas 0 (7:00am) a 2 (9:00am) cuando Ya existe un horario asignado a esa hora, y si, efectivamente arroja el id_horariodet correspondiente al horario asignado,
pero que pasa si alguien quiere instalar un horario en iddia=1 entre las horas 1 (8:00am) y 3 (10:00am) donde existe cruce igualmente?
Saludos y Gracias