我有一个查询来查找给定锦标赛中单个玩家的积分总和。效果很好,除了返回“ User”的值作为该用户的外键ID。
$q = $this->createQueryBuilder('s')
->select('IDENTITY(s.user) as user', 'SUM(s.points) as points')
->groupBy('s.user')
->andWhere('s.tournament = :tournament')
->setParameter('tournament', $tournament)
->orderBy('points', 'DESC')
;
是否可以选择用户的用户名?我希望这是可能的,而不必为结果中的每个用户再次查询。
答案 0 :(得分:0)
只需加入用户表并添加用户名即可选择查询:
$q = $this->createQueryBuilder('s')
->select('IDENTITY(s.user) as user', 's.username', 'SUM(s.points) as points')
->leftJoin('s.user','user')
->groupBy('s.user')
->andWhere('s.tournament = :tournament')
->setParameter('tournament', $tournament)
->orderBy('points', 'DESC');