Doctrine2 Self Join, How to join on self without r

2019-06-26 11:40发布

Example mysql query:

SELECT
a1.*
FROM
agreement a1
LEFT JOIN agreement a2 on a1.agreementType = a2.agreementType and a2.id > a1.id
WHERE
a2.id is null

The purpose of the query is to get the last agreement of the type returned. There are many types and I want only a listing of each latest agreement for each type. My example query above works as expected, but no go in DQL.

How would I do this in DQL given I do not have a column that refers to itself? Note that "agreementType" is also a foreign key to a different table as well.

1条回答
Melony?
2楼-- · 2019-06-26 12:02

Figured it out. Thought I would share.

        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
查看更多
登录 后发表回答