आप कुछ इस तरह चाहते हैं:
select room_id
from availability a
where avail_date between $start and $end
group by room_id
having count(*) = datediff($end, $start) + 1;
having
क्लॉज उस अवधि के दौरान पंक्तियों की संख्या की गणना कर रहा है, यह देखने के लिए कि क्या यह आपके लिए आवश्यक दिनों की संख्या से मेल खाता है। यह "समावेशी" तर्क है, इसलिए यदि $start = $end
, तो यह मान लिया जाता है कि आपको उस तारीख को कमरा चाहिए।