sql >> Databasteknik >  >> RDS >> Mysql

MySQL Letar efter lediga rum i bokningssystem

För att söka efter alla rum som inte har några bokningar inom en viss tidsram, överväg följande:

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

Vad händer där?

I den inre frågan söker jag i bokningslistan efter reservationer som åtminstone delvis ligger inom den erforderliga tidsramen och får deras rums-ID. Och sedan, i den yttre frågan, begär jag från rumstabellen alla rums-ID:n som INTE är listade, det vill säga de har ingen reservation som åtminstone delvis ligger inom den nödvändiga tidsramen.

@StartDate och @EndDate måste ändras av dig - du måste lägga in dina variabler där.




  1. MySql - skiftlägeskänslig fråga om tabeller på olika server

  2. Hur man använder DISTINCT i SQL

  3. MySql-databasstruktur för:Sök baserat på en kolumn och olika värden

  4. Hur hämtar man tabellnamn i en mysql-databas med Python och MySQLdb?