Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL Suche nach freien Zimmern im Reservierungssystem

Beachten Sie Folgendes, um nach allen Zimmern zu suchen, die in einem bestimmten Zeitraum keine Buchungen haben:

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

Was passiert da?

In der inneren Abfrage durchsuche ich die Reservierungsliste nach Reservierungen, die zumindest teilweise innerhalb des erforderlichen Zeitraums liegen, und erhalte deren Zimmer-IDs. Und dann fordere ich in der äußeren Abfrage aus der Zimmertabelle alle Zimmer-IDs an, die NICHT aufgeführt sind, also keine Reservierung haben, die zumindest teilweise im geforderten Zeitraum liegt.

@StartDate und @EndDate müssten von Ihnen modifiziert werden - Sie müssen Ihre Variablen dort ablegen.