Doctrine2自我加入,如何加入自我无关系列?

use*_*738 4 doctrine self-join dql

示例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
Run Code Online (Sandbox Code Playgroud)

查询的目的是获取返回类型的最后一个协议.有很多类型,我只想要列出每种类型的最新协议.我上面的示例查询按预期工作,但没有进入DQL.

如果我没有引用自身的列,我将如何在DQL中执行此操作?请注意,"agreementType"也是不同表的外键.

use*_*738 13

弄清楚了.以为我会分享.

        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
Run Code Online (Sandbox Code Playgroud)