如何使用教义QueryBuilder使用外键选择列?

时间:2019-05-17 09:00:32

标签: symfony doctrine-orm

我有一个查询来查找给定锦标赛中单个玩家的积分总和。效果很好,除了返回“ 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')
        ;

是否可以选择用户的用户名?我希望这是可能的,而不必为结果中的每个用户再次查询。

1 个答案:

答案 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');