[英]Mysql Fetch entire row where value is max
我正在尝试以下
Table : teams_members
Id Team_id User_id
1 103 65524
14 103 65529
16 103 65530
17 103 65526
19 103 65528
Table : users
Id username
65524 Kaiprioska
65526 Darkstarling
65528 Metazoans98
65529 Darth Laser
65530 TheBourbonKid
Table : users_playeraccounts
Id user_id summoner_name rank_solo
7 65524 kaiprioska 19
8 65524 swaggapandaa 14
9 65524 Yolonese Prophet 12
10 65529 Darth Laser 15
11 65530 TheBourbonkid 18
12 65528 Metazoans98 9
13 65530 TheBourbonKid 12
结果需要是什么:
user_id summoner_name rank_solo
65524 kaiprioska 19
65529 Darth laser 15
65530 TheBourbonkid 18
65528 metazoans98 9
655529 darth laser 15
因此,每个团队成员都需要一个users_playeraccounts条目,其中rank_solo是该user_id的最大值。 我可以获得完整的列表,因此每个成员的每个玩家帐户都可以,但是最大条目数却不能。
任何帮助将不胜感激。
select user_id, summoner_name, max(rank_solo ) as rank_solo
from users_playeraccounts
group by user_id
尝试这个
SELECT USER_ID, SUMMONER_NAME, MAX(RANK_SOLO) FROM users_playeraccounts GROUP BY USER_ID
您需要查询该表两次; 一次获得最高排名,另一次获取他们的记录。 (顺便说一句,如果用户有两个最高排名,两个都在结果中。)
SELECT q.user_id, q.summoner_name, q.rank_solo
FROM (
SELECT user_id, MAX(rank_solo) AS rank_solo
FROM users_playeraccounts
GROUP BY user_id
) As maxQ
INNER JOIN users_playeraccounts AS q USING (user_id, rank_solo)
GROUP BY q.user_id -- If you only want one per user.
;
SELECT u.id,u.username,solo_rank FROM(选择[user_id] userID,MAX(rank_solo)solo_rank FROM users_playeraccounts GROUP BY [user_id])BestSoloRanking加入用户u ON BestSoloRanking.userID = u.id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.