我想选择所有内容+ MAX值,并且只接收具有MAX值的行。
$query = $this->createQueryBuilder('s');
$query->where('s.challenge = :challenge')->setParameter('challenge', $challenge);
$query->groupBy('s.score');
$query->getQuery();
return $query->select('s.*, MAX(s.score) AS max_score')->getQuery()->getResult();
我该如何在学说上做到这一点?我收到一个错误,指出*属性未找到。我试图一次全部选择它们,但也没有运气。
目标是实现这样的目标
SELECT user, challenge, whateverelse, MAX(score) FROM users_scores_table GROUP BY user_id
请帮忙 ;)
最佳答案
这是最终的工作查询
$query = $this->createQueryBuilder('s');
$query->select('s, MAX(s.score) AS max_score');
$query->where('s.challenge = :challenge')->setParameter('challenge', $challenge);
$query->groupBy('s.user');
$query->setMaxResults($limit);
$query->orderBy('max_score', 'DESC');
return $query->getQuery()->getResult();
关于symfony - Doctrine 查询建立选择MAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16201559/