Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL Procurando quartos gratuitos no sistema de reservas


Para pesquisar todos os quartos sem reservas em um determinado período, considere o seguinte:
SELECT roomID FROM room WHERE roomID NOT IN(
    SELECT roomID FROM reservation WHERE startDate < @EndDate AND endDate > @StartDate
)

O que está acontecendo lá?

Na consulta interna, estou pesquisando na lista de reservas as reservas que estão pelo menos parcialmente dentro do prazo exigido e obtenho os IDs dos quartos. E então, na consulta externa, solicito da tabela de salas todos os IDs de salas que NÃO estão listados, ou seja, não possuem nenhuma reserva que esteja pelo menos parcialmente dentro do prazo exigido.

@StartDate e @EndDate teriam que ser modificados por você - você precisa colocar suas variáveis ​​lá.