full_join() (PostgreSQL only)

The full_join() method is similar to inner_join() except that its output includes every output of the left hand query at least once, and every output of the right-hand query at least once. It's a wrapper for SQL's FULL JOIN.

For any queries l, r, you can call l.full_join(r, condition) provided that:

l and r's value mappers will both be visible to condition.

l.full_join(r, condition) returns a conditional_junction with the following characteristics:

const query<std::tuple<boost::optional<screen>, boost::optional<movie>>> nothing_left_behind =
    screens.full_join(movies, screens->current_movie_id == movies->id);