次のようなものが必要です:
select room_id
from availability a
where avail_date between $start and $end
group by room_id
having count(*) = datediff($end, $start) + 1;
持っているコード> 句は、その期間中の行数をカウントして、必要な日数と一致するかどうかを確認します。これは「包括的」ロジックであるため、
$ start =$ end
の場合 、その日に部屋が必要であると想定します。