Doctrine2自联接,如何在没有关系列的情况下在自身上联接?

Doctrine2自联接,如何在没有关系列的情况下在自身上联接?,doctrine,dql,self-join,Doctrine,Dql,Self Join,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 查询的目的是获取返回类型的最后一个协议。有很多种类型,我只想列出每种类型的最新协议。我上面的示例查询按预期工作,但在DQL中不起作用 如果我没有引用自身的列,那么在DQL中如何实现这一点?请注意,“agreem

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
查询的目的是获取返回类型的最后一个协议。有很多种类型,我只想列出每种类型的最新协议。我上面的示例查询按预期工作,但在DQL中不起作用


如果我没有引用自身的列,那么在DQL中如何实现这一点?请注意,“agreementType”也是另一个表的外键。

找到了它。我想我会分享

        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