所以我有以下查询,它提取组织内的主动竞争,并尝试获取领先竞争对手的用户。运行在另一个SQL查询的循环中的SQL查询?
目前查询获取正确积极的比赛,并为每个用户的totalPoints。现在抓住所有的用户,我只希望它抢顶级用户,所以我假设的解决之道在于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
提供表结构plz –
select * from table inner join(select * from table2)as temp_table2 on temp_table2.id = table.id – AdrianBR
正如@Nadeem_MK所示,如果您需要更详细的帮助,请考虑提供适当的DDL和/或共同的sqlfiddle与期望的结果 – Strawberry