Return available rooms depending 2 others tables
SELECT ro.ROO_Id, ro.ROO_Name, ra.RAT_Price
FROM ___Rooms ro, ___Rates ra, ___Availabilities av
WHERE (FIND_IN_SET(ro.roo_id, ra.RAT_RoomsList) OR ra.RAT_RoomsList='')
  AND av.AVA_Status = 'Open'
  AND av.AVA_RoomId = ro.roo_id
  AND av.AVA_Date BETWEEN GREATEST(ra.RAT_DateStart, '2019-04-02') 
                      AND LEAST(ra.RAT_DateEnd, '2019-04-04')
GROUP BY ro.ROO_Id, ro.ROO_Name, ra.RAT_Price
HAVING COUNT(*) = 1 + DATEDIFF('2019-04-04', '2019-04-02')


fiddle