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.