Doctrine orm 不同的createQueryBuilder

Doctrine orm 不同的createQueryBuilder,doctrine-orm,doctrine,distinct,symfony-2.1,Doctrine Orm,Doctrine,Distinct,Symfony 2.1,我正在尝试为唯一用户选择最大分数对象 所以,用户应该是不同的,我应该收到一个用户的最大分数(订单),我需要获得其他对象值,比如为这个最大分数添加的数据 $query = $this->createQueryBuilder('s'); $query->select('DISTINCT s.user, s'); $query->where('s.challenge = :challenge')->setParameter('challenge', $c

我正在尝试为唯一用户选择最大分数对象

所以,用户应该是不同的,我应该收到一个用户的最大分数(订单),我需要获得其他对象值,比如为这个最大分数添加的数据

    $query = $this->createQueryBuilder('s');
    $query->select('DISTINCT s.user, s');
    $query->where('s.challenge = :challenge')->setParameter('challenge', $challenge);

    $query->andWhere('s.date_added BETWEEN :monday AND :sunday')
       ->setParameter('monday', $startDate->format('Y-m-d'))
       ->setParameter('sunday', $endDate->format('Y-m-d'));

    $query->orderBy('s.score', 'DESC');

    //$query->groupBy('s.user');
    $query->setMaxResults($limit);

    $results = $query->getQuery();
不管我怎么努力,我都无法区分工作。我尝试过按最大值分组(s.score),但这会将随机对象与最大值关联,而不是与同一对象关联

有人能解决这个问题吗?显然根本不起作用

生成的查询:

SELECT DISTINCT s.user, s FROM Digital\ApplicationBundle\Entity\ChallengeScore s WHERE s.challenge = :challenge AND (s.date_added BETWEEN :monday AND :sunday) ORDER BY s.score DESC
但这是一个错误;(


值得一提的是,用户是一个关系。当我在其他文件上尝试此操作时,效果很好…

如果需要获取count distinct value,可以使用。但如果必须获取所有distinct value,请使用

[Semantical Error] line 0, col 18 near 'user, s FROM': Error: Invalid PathExpression. Must be a StateFieldPathExpression