Rewriting Not In Sub-Select como Join para Propel
Dado el siguiente esquema:
person:
id: ~
group:
id: ~
group_membership:
person_id: ~
group_id: ~
Estoy intentando encontrar miembros que no pertenezcan a un determinado grupo utilizando los criterios de Propel, lo que hará el siguiente SQL:
SELECT * FROM person
WHERE id NOT IN (
SELECT person_id FROM group_membership
WHERE group_id = 1
);
Desafortunadamente, Propel no admite sub-selecciones. Es posible realizar la sub-selección primero y pasarla directamente como una matriz, pero prefiero hacerlo en una sola llamada. EncontréEste artícul, que sugiere utilizar un criterio personalizado o convertirlo en una unión.
Es posible convertir el SQL anterior en una sola unión sin selecciones anidadas?