Vous voulez quelque chose comme ça :
select room_id
from availability a
where avail_date between $start and $end
group by room_id
having count(*) = datediff($end, $start) + 1;
Le having
La clause compte le nombre de lignes pendant cette période pour voir si cela correspond au nombre de jours dont vous avez besoin. C'est une logique "inclusive", donc si $start = $end
, il suppose que vous avez besoin de la chambre à cette date.