我对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/