A ver si me resuelven esta duda:
Tengo 2 tablas, en una tengo los distintos PRODUCTOS y en otra las fechas en las que estos productos no están disponibles.
Tabla1
id-Producto 1
id-Producto 2
id-Producto 3
Tabla2
Id- Idproducto-fecha1-fecha2
En la tabla 2 un producto puede estar no disponible entre (fecha 1-fecha2) y también entre (fecha 3-fecha 4) y otros productos estar disponible ya que no ha sido ocupado aún y por lo tanto no aparece en la tabla 2.
Hago la consulta siguiente :
Select * from Tabla2 where ( fecha_solicitada NOT BETWEEN fecha1 AND fecha2
OR fecha_solicitada2 NOT BETWEEN fecha1 AND fecha2)
Esta consulta me arroja los productos que están disponibles y están presentes en la tabla 2 pero aquel producto que no esté ocupado( por lo tanto no está en la TABLA2) no me lo arroja.
He pensado en la tabla 2 abrir un rango de fechas DE DISPONIBILIDAD y crear otro campo con disponibilidad =1 y los no disponibles con disponibilidad = 0.
El problema es que se cruzan los rangos de fechas y siempre los rangos no disponibles están incluidos en el rango disponible y no sé hacer una consulta en la que me diga si tal producto está disponible pero en dicho rango no lo está, por lo tanto dicho producto no está DISPONIBLE.
Es un error de concepto y a lo mejor tengo mal planteada las tablas. Espero me den una solución para la consulta o sugieran un mejor diseño para las tablas.
Muchísimas gracias de antemano.