如何使用Doctrine 2中的QueryBuilder使用SELECT子查询创建LEFT JOIN?

时间:2012-01-31 20:34:35

标签: mysql symfony doctrine-orm left-join

我需要限制LEFT JOIN结果,所以我必须使用子查询。 有人可以给我建议我怎么能用Doctrine 2做到这一点?

我现在拥有的是:

  $qb = $this->_em->createQueryBuilder();
    return $qb->add('select', 'c,j')
             ->add('from', 'JobeetBundle:Category c')
             ->leftJoin('c.jobs', 'j', 'WITH', 'j.category = c')
             ->add('where', 'j.expiresAt > ?1')
             ->add('orderBy','j.expiresAt DESC')
             ->setParameter(1, new \DateTime())
             ->getQuery()
             ->getResult();

但我必须将其更改为每个类别将作业结果限制为10个。

1 个答案:

答案 0 :(得分:1)

不幸的是,这是不可能的。在这里:

https://groups.google.com/forum/#!topic/doctrine-user/0rNbXlD0E_8

你可以在这里使用IN来做到这一点:

Doing a WHERE .. IN subquery in Doctrine 2