left - set parameters doctrine
Doctrine2 Self Join, ¿Cómo unirse a sí mismo sin una columna de relación? (1)
Lo averigué. Pensé que compartiría.
SELECT
a1
FROM
My/Model/Agreement a1
LEFT JOIN My/Model/Agreement a2
WITH a1.agreementType = a2.agreementType AND a2.id > a1.id
WHERE
a2.id IS NULL
Ejemplo de consulta mysql:
SELECT
a1.*
FROM
agreement a1
LEFT JOIN agreement a2 on a1.agreementType = a2.agreementType and a2.id > a1.id
WHERE
a2.id is null
El propósito de la consulta es obtener el último acuerdo del tipo devuelto. Hay muchos tipos y solo quiero una lista de cada acuerdo más reciente para cada tipo. Mi consulta de ejemplo anterior funciona como se esperaba, pero no va en DQL.
¿Cómo haría esto en DQL dado que no tengo una columna que se refiera a sí misma? Tenga en cuenta que "agreementType" también es una clave externa para una tabla diferente también.