sql >> Base de Datos >  >> RDS >> Mysql

MySQL Buscando habitaciones libres en el sistema de reservas

Para buscar todas las habitaciones que no tienen reservas en un período de tiempo determinado, considere lo siguiente:

SELECT roomID FROM room WHERE roomID NOT IN(
    SELECT roomID FROM reservation WHERE startDate < @EndDate AND endDate > @StartDate
)

¿Qué está pasando allí?

En la consulta interna, estoy buscando en la lista de reservas las reservas que están al menos parcialmente dentro del período de tiempo requerido y obtengo sus ID de habitación. Y luego, en la consulta externa, solicito de la mesa de la sala todas las ID de la sala que NO están en la lista, es decir, no tienen ninguna reserva que esté al menos parcialmente dentro del marco de tiempo requerido.

Usted tendría que modificar @StartDate y @EndDate; debe colocar sus variables allí.