2012-01-31 88 views
5

我需要限制LEFT JOIN結果,所以我必須使用子查詢。 有人可以給我建議我怎麼能用Doctrine 2做到這一點?如何使用QueryBuilder在Doctrine 2中使用SELECT子查詢創建LEFT JOIN?

我現在擁有的是:

$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。

+0

如何Doctrine2建立子查詢,你可以[這裏找到](http://stackoverflow.com/questions/6637506 /做-A-其中功能於子查詢功能於主義-2#6638146)。 – jkucharovic 2012-02-01 06:33:02

+0

謝謝,但可能我不能通過子選擇加入QueryBuilder,我需要使用本機SQL。 – drupality 2012-02-01 11:37:40

回答