आपके प्रश्न का अनुसरण करना काफी कठिन है क्योंकि आपकी क्वेरी के कॉलम नमूना डेटा के कॉलम से मेल नहीं खाते हैं। साथ ही, आपका कोई वांछित परिणाम नहीं है।
मुझे लगता है कि आपको दिनांक तुलनाओं को on
. में स्थानांतरित करने की आवश्यकता है क्लॉज करें और फिर where
. में गैर-मिलानों की तलाश करें :
select rct.room_category AS room_category,
group_concat(rc.room_name separator ',') AS vacant_beds
from room_charges rc join
room_category rct
on rc.room_category = rct.id left join
patient_detail pd
on rc.id = pd.room_name and
(pd. discharge_date_time is null or
curdate() between admission_date_time and discharge_date_time)
where pd.id is null
group by rc.room_category ;