Query multiple rooms with different conditionals (Adults, Children)
first insert the resultset of the room_type table to a temp table with the filtering by your parameters

 r.max_adults &gt;= 3 AND r.max_children &gt;= 0


then query that table and join the property  and plan tables to it and it should be faster.