Doctrine查询构建器:如何使用内部联接条件执行查询

时间:2016-03-14 11:04:45

标签: php mysql symfony doctrine-orm

我有以下实体

  • 提交
  • SubmissionEvent(状态(0,1或2),日期)

提交与SubmissionEvent有一对多的关系。所以我正在尝试构建一个DQL,我可以根据SubmissionEvent的日期选择最后一个状态。所以我想要的是内部联接到提交事件,但仅限于最后一个事件。

我试图在内连接上使用MAX子句但是没有用。

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT 
    s.name, se.*
FROM Submission s INNER JOIN SubmissionEvent se
        ON s.id = se.submission_id
    INNER JOIN (SELECT submission_id, MAX(event_date) event_date
                FROM SubmissionEvent
                GROUP BY submission_id) t
        ON s.id = t.submission_id