Doctrine2子查询

时间:2011-10-24 17:52:41

标签: subquery doctrine-orm

我正在尝试在doctrine2中编写一个子查询,对按另一个表的日期列排序的表进行排序。

(假设我正在查询表A,它有一个id列,B在子查询中有a_id和日期b.a_id = a.id)

我正在使用查询构建器和addSelect方法,但由于我无法在查询中使用LIMIT,因此出现此错误:

  

SQLSTATE [21000]:基数违规:1242子查询返回更多   超过1行

这个错误是正确的,但是我怎么能将这个查询限制为1行,如果在doctrine2中不允许LIMIT,当我尝试通过querybuilder(我的意思是子查询)并且我正在使用setMaxResults,然后getDQl它仍然无法正常工作。

->addSelect('(SELECT b.date FROM B b WHERE b.conversation = a.id ORDER BY b.date DESC)')

我的问题有解决办法吗?

由于

1 个答案:

答案 0 :(得分:1)

使查询返回一行。试试SELECT MAX(b.date) FROM B b WHERE b.conversation = a.id)