【发布时间】:2021-08-13 00:42:54
【问题描述】:
我有一个如下所示的数据库:
玩家(UserId、邮件、密码、用户名、LastLogin)
排行榜(UserId*、等级、击杀数、死亡数)
匹配(MatchId、HostId*、ServerIp、StartTime、Team1Points、Team2Points)
MatchStats(UserId*、MatchId*、杀戮、死亡)
武器(IdWeapon、名称、伤害、射速、装填时间、射程)
库存(UserId*、WeaponType*、皮肤)
我需要一个查询来选择在至少 3 场比赛中死亡超过 12 次(MatchStats.Deaths > 12)的每个玩家的 LastLogin。 有人能帮我吗?我在可能的联接或子查询方面遇到问题。
我尝试了类似的方法:
SELECT LastLogin FROM Player WHERE UserId=(SELECT UserId FROM (SELECT * FROM MatchStats WHERE Deaths>12 AS TAB) WHERE COUNT(UserId)>3))
或
SELECT LastLogin FROM Player
WHERE (SELECT COUNT(SELECT Count(*) FROM MatchStats WHERE Deaths>12 GROUP BY UserId)>3 GROUP BY UserId;
但我觉得我离正确查询还很远,也许我错过了一个 Join 或者我做错了..
【问题讨论】:
-
你试过什么?你遇到了什么问题?
-
@Akina 我试过这样的事情:
SELECT LastLogin FROM Player WHERE UserId=(SELECT UserId FROM (SELECT * FROM MatchStats WHERE Deaths>12 AS TAB) WHERE COUNT(UserId)>3))但我觉得我离正确的查询还很远,也许我错过了一个加入,idk... -
@gNt 编辑您的问题并努力重新打开问题。
-
@KaziMohammadAliNur 我编辑了它,它仍然关闭
-
@gNt 我已投票支持重新开放。希望它会尽快开放。同时您可以尝试这个解决方案:从存在的 Player p 中选择 lastlogin (从 MatchStats m where death>=12 和 p.UserId=m.UserId 组中选择具有 count(distinct matchid)>=3 的用户 ID 组)
标签: mysql sql database join subquery