За да търсите всички стаи, които нямат резервации в определен период от време, помислете за следното:
SELECT roomID FROM room WHERE roomID NOT IN(
SELECT roomID FROM reservation WHERE startDate < @EndDate AND endDate > @StartDate
)
Какво се случва там?
Във вътрешната заявка търся в списъка с резервации резервации, които са поне частично в необходимия период от време, и получавам техните идентификационни номера на стаите. И след това във външната заявка изисквам от таблицата на стаите всички идентификатори на стаи, които НЕ са изброени, тоест нямат резервация, която е поне частично в необходимия период от време.
@StartDate и @EndDate трябва да бъдат променени от вас - трябва да поставите своите променливи там.