Искате нещо подобно:
select room_id
from availability a
where avail_date between $start and $end
group by room_id
having count(*) = datediff($end, $start) + 1;
having
клаузата брои броя на редовете през този период, за да види дали съответства на броя на дните, от които се нуждаете. Това е "включваща" логика, така че ако $start = $end
, тогава предполага, че имате нужда от стаята на тази дата.