我对Symfony和DQL有问题。
我有2张桌子。

表A:
id:int,
状态:字符串,
referenceNumber:int
tableB:[] tableB

表B:
id:int
类型:int,
tableA_id:int

表之间存在一个(表A)到多个(表B)的关系。

我需要找到每个TableA

TableA.status = Complete
AND (TableA.referenceNumber IS NULL OR COUNT(TableB.type = 22) = 0)

    $queryBuilder = $this->getEntityManager()
            ->createQueryBuilder()
            ->select('u')
            ->from('TestBundle:TableA', 'a');
    $queryBuilder->select('a','b');
    $queryBuilder->leftjoin('a.tableB', 'b');
    $queryBuilder->andWHERE('a.status = 'Complete')
    $query = $queryBuilder->getQuery();


我不知道如何编写其余的查询。

最佳答案

我认为您可以做到:


$query->where("a.status = 'Complete'")
      ->andWhere("a.referenceNumber IS NULL OR COUNT(b.type = 22) = 0");


如果使用变量,则将准备好的查询用于:


$query->where("a.status = :status")
      ->setParameter("status", $status);


希望这就是你想要的

关于php - Symfony2中的 Doctrine QueryBuilder,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29408892/

10-11 13:57