symfony - Doctrine 查询建立选择MAX

标签 symfony doctrine-orm doctrine symfony-2.1

我想选择所有内容+ 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/

相关文章:

javascript - Symfony2在组件中找不到jquery.js文件

mongodb - 如何使用 mongodb 从 doctrine ODM 中的引用文档数组中删除文档

php - Symfony 2 Doctrine 计数

php - 如何从 createQueryBuilder 获取 sql?

doctrine - 删除多对多表中的记录

php - symfony 4 多种形式循环 Twig 提交

json - 使用 AJAX 调用从 Symfony2 Controller 返回 JSONP

php - Gedmo Timestampable(更新创建时)

rest - 在使用 FOSRestBundle 进行序列化期间检测到 Symfony 3.0.4 循环引用

mysql - Doctrine - 具有自定义主键的ManyToMany