Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL Alla ricerca di camere libere nel sistema di prenotazione

Per cercare tutte le camere che non hanno prenotazioni in un determinato periodo di tempo, considera quanto segue:

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

Cosa sta succedendo lì?

Nella query interna, sto cercando nell'elenco delle prenotazioni le prenotazioni che rientrano almeno in parte entro il periodo di tempo richiesto e ottengo i loro ID camera. E poi, nella query esterna, richiedo dal tavolo della stanza tutti gli ID delle stanze che NON sono elencati, ovvero non hanno alcuna prenotazione che sia almeno parzialmente entro il periodo di tempo richiesto.

@StartDate e @EndDate dovrebbero essere modificati da te:devi inserire le tue variabili lì.