1. A method comprising: receiving a first query; transforming the first query, comprising an outer query that includes a selection of a subquery that (a) returns at most one row and (b) includes a first predicate that references a database object that is from the outer query and outside the subquery, to a second query that includes: a second predicate that corresponds to the first predicate, wherein the second predicate references an outer join, wherein the second query does not select any subquery having the first predicate or the second predicate, and wherein the second query is semantically equivalent to the first query; causing execution of the second query instead of the first query; wherein the method is performed by one or more computing devices.