SELECT rooms.id, rooms.name FROM rooms WHERE rooms.id NOT IN ( SELECT reservations.room_id FROM reservations WHERE ( ('2007-04-17' < sdate) AND ('2007-04-17' < edate < '2007-04-20') OR ('2007-04-17 >= sdate) AND ('2007-04-20' <= edate) OR ('2007-04-17 < sdate < '2007-04-20') AND ('2007-04-20' > edate) ) )