我试图在教条中找出嵌套查询。
我有3个实体:订单(订单),OrderStatus(订单之间的链接表和可能的状态 - 包含一个名为createdTime
的字段),状态(所有可能状态的列表,一个字段为{{ 1}})
我想要做的是返回最新状态为name
我知道我基本上首先得到每个订单的最新状态记录,然后通过$statusName
过滤掉。我尝试了很多不同的东西,但每次我都认为我走在正确的轨道上并遇到了一堵砖墙。
我现在拥有的是:
$statusName
我收到错误:
$subquery = $this->getEntityManager()->createQueryBuilder()
->select('max(os.createdTime), os')
->from('AppBundle:OrderStatus', 'os')
->groupBy('os.order');
$q = $this->createQueryBuilder('o');
$q->where($q->expr()->in('o.id', $subquery->getDQL()))
->getQuery()->getResult();
如果查询完全符合我的要求,我甚至不确定是否已经过了这个错误,但我无法解决这个问题。基本上我想生成类似于SQL版本的查询:
[Syntax Error] line 0, col 86: Error: Expected Doctrine\ORM\Query\Lexer::T_FROM, got ','