0

所以我有以下查询,它获取组织内的活跃竞赛,并尝试获取领导竞赛的用户。

目前,查询正确地获取了活跃的比赛,以及每个用户的总积分。它现在抓取所有用户,我只希望它抓取顶级用户,所以我假设解决方案在于 GROUP BY 查询,某种 LIMIT?

在这张图片中,你可以看到我得到的结果。正如你所看到的,我为每场比赛获得了每个用户,而我只需要每场比赛的顶级用户。

http://i.imgur.com/5OXen4e.png

关于如何解决这个问题的任何想法?

SELECT c.competitionId, c.name, c.start_date, c.end_date, a.userid, u.name, u.profilePic , 

SUM(activity_weight) AS totalPoints

FROM activity_entries a INNER JOIN users1 u ON u.id = a.userid INNER JOIN competitions c ON c.competitionId = a.competitionId

WHERE c.organisationId = 1 AND c.start_date < now() AND c.end_date > now() 
GROUP BY a.userid, c.competitionId ORDER BY c.id DESC
4

1 回答 1

0

有个更好的方法。只需运行一个查询并加入比赛表。您发布的第二个查询表明您知道如何连接表。

于 2013-09-27T12:16:57.297 回答