我如何使用学说QueryBuilder使用外键选择列



我有一个查询可以在给定比赛中找到单个球员的积分总和。它运行良好,除了返回"用户"的值作为该用户的外键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')
        ;

有没有一种方法可以选择用户的用户名?我希望这是可能的,而不必为结果中的每个用户进行另一个查询。

只需加入用户表,然后添加用户名以选择查询:

$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');

最新更新