Du vil have noget som dette:
select room_id
from availability a
where avail_date between $start and $end
group by room_id
having count(*) = datediff($end, $start) + 1;
Den having
klausulen tæller antallet af rækker i denne periode for at se, om det matcher det antal dage, du har brug for. Dette er "inklusiv" logik, så hvis $start = $end
, så antager det, at du har brug for lokalet på den dato.