Symfony2中的Doctrine QueryBuilder

时间:2015-04-02 08:57:45

标签: php mysql symfony doctrine dql

我遇到Symfony和DQL的问题。 我有两张桌子。

表A: id:int, status:string, referenceNumber:int tableB:[] tableB

表B: ID:INT, type:int, tableA_id:int

表在一个(tableA)到多个(tableB)关系中。

我需要找到每个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();

我不知道怎么写其余的查询。

1 个答案:

答案 0 :(得分:0)

我认为你可以做到:

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

如果您使用变量,请使用准备好的查询:

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

希望这是你想要的