Du vill ha något sånt här:
select room_id
from availability a
where avail_date between $start and $end
group by room_id
having count(*) = datediff($end, $start) + 1;
having
klausulen räknar antalet rader under den perioden för att se om det matchar antalet dagar du behöver. Detta är "inkluderande" logik, så om $start = $end
, då antar det att du behöver rummet på det datumet.