我在我的课程实体和用户实体中有一个manyTomany关系。course实体具有value members和user实体gameRounds。在我的course实体中,我还将maxMembers值设置为整数。现在,我想用querybuilder和course的值k以及users的值u创建一个教义查询,它测试课程成员的数量是否小于maxMembers值。
$qb->innerJoin('k.members','u');
$qb->andWhere('k.id in (u.gameRounds)');
$qb->addSelect('count(u.id) as countValue');
$qb->andWhere('countValue < :maxMembers');
$qb->setParameter('maxMembers','k.maxMembers');
我测试了这个代码。但服务器给我一个错误,
[Semantical Error] line 0, col 144 near 'gameRounds) AND': Error: Invalid PathExpression. StateFieldPathExpression or SingleValuedAssociationField expected.
现在我更进一步:
$qb->join('k.members','u');
$qb->having('count(u) < k.maxMembers');
$qb->groupBy('k.id');
这看起来是可行的,但只适用于表中至少有一个值的条目。如何比较表中没有值的条目和count值为空的条目?我试过它与
$qb->having('ISNULL(count(u),0) < k.maxMembers');
但有一个错误:
[Syntax Error] line 0, col 123: Error: Expected known function, got 'ISNULL'
1条答案
按热度按时间0qx6xfy61#