如何筛选具有给定附加关联对象计数的 DQL 实体?
例如:
$qb = $this->createQueryBuilder('u');
$qb->where('COUNT(u.moods) > 1');
其中 u.moods 是用户的一对多关系?
最佳答案
您可以使用此查询生成器配置。
$qb = $this->createQueryBuilder('u');
$qb
->select(array('u'))
->from('User', 'u')
->innerJoin('u.moods', 'm')
->having(
$qb->expr()->gt(
$qb->expr()->count('m'), 1
)
);
return $qb->getQuery()->getResult();
或者如果您更喜欢 DQL
$dql = "SELECT u FROM User u JOIN u.moods m HAVING COUNT(m) > 1";
$query = $this->createQuery($dql);
return $query->getResult();
关于doctrine-orm - 使用 DQL 仅选择具有给定关联对象计数的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19523851/