Bạn muốn một cái gì đó như thế này:
select room_id
from availability a
where avail_date between $start and $end
group by room_id
having count(*) = datediff($end, $start) + 1;
having
mệnh đề đếm số hàng trong khoảng thời gian đó để xem nó có khớp với số ngày bạn cần hay không. Đây là logic "bao gồm", vì vậy nếu $start = $end
, thì nó giả định rằng bạn cần phòng vào ngày đó.