An internal query finds a room that is not available, then we use a non-existent left join to remove these dates from our results, leaving us only in accessible rooms.
SELECT r.ROOM_ID
FROM rooms r LEFT JOIN (
SELECT ROOM_ID
FROM tableName
WHERE DATE_UNAVAILABLE BETWEEN 'Date1' AND 'Date2'
GROUP BY ROOM_ID
) g ON r.ROOM_ID = g.ROOM_ID
WHERE g.ROOM_ID IS NULL
Alternatively, if you have the correct indexes in place, skipping a group might be faster:
SELECT r.ROOM_ID
FROM rooms r LEFT JOIN tableName g ON r.ROOM_ID = g.ROOM_ID
AND g.DATE_UNAVAILABLE BETWEEN 'Date1' AND 'Date2'
WHERE g.ROOM_ID IS NULL