所以我有以下查詢,它提取組織內的主動競爭,並嘗試獲取領先競爭對手的用戶。運行在另一個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