Escrever não em sub-seleção como ingresso para Propel
Dado o seguinte esquema:
person:
id: ~
group:
id: ~
group_membership:
person_id: ~
group_id: ~
Estou tentando encontrar membros que não pertencem a um determinado grupo usando os Critérios da Propel, o que o seguinte SQL fará:
SELECT * FROM person
WHERE id NOT IN (
SELECT person_id FROM group_membership
WHERE group_id = 1
);
Infelizmente, o Propel não suporta sub-seleções. É possível executar a sub-seleção primeiro e passá-lo diretamente como uma matriz, mas eu prefiro fazê-lo em uma chamada. Eu encontreiEste artig, o que sugere o uso de um critério personalizado ou a conversão em uma associação.
possível converter o SQL acima em um único Join sem seleções aninhada