Given the following schema:
person:
id: ~
group:
id: ~
group_membership:
person_id: ~
group_id: ~
I am attempting to find members not within a certain group using Propel's Criteria, which the following SQL will do:
SELECT * FROM person
WHERE id NOT IN (
SELECT person_id FROM group_membership
WHERE group_id = 1
);
Unfortunately, Propel doesn't support sub-selects. It's possible to perform the sub-select first and pass it directly as an array, but I would rather do it in one call. I found this article, which suggests using a custom criteria or converting it to a join.
Is it possible to convert the above SQL to a single Join with no nested selects?