Да, используя соединения. Большинство СУБД оптимизируют объединение таким образом, что ему не нужно извлекать строки, которые ему не нужны. MySQL по-прежнему использует вложенные циклы, но я верю, что Oracle будет использовать хеш-соединения.
Так что этот запрос лучше выразить как
Select `unitid`, `name` FROM apartmentunits au
INNER JOIN rentconditionsmap rcm1
USING (aptid)
INNER JOIN rentconditionsmap rcm2
USING (aptid)
WHERE rcm1.rentcondid = 4
AND rcm1.condnum = 1
AND rcm2.rendcondid = 2
AND rcm2.condnum = 1