MySQL - 获得前5名对手

时间:2015-08-14 09:33:05

标签: mysql sql

我正在努力争取我与之对抗的前五名对手。

表格如下

USERS :
 user_id  name               email
       1 : Gait Bakker     : user1@test.nl
       2 : Freek ter Bekke : user2@test.nl
       3 : Jan Zomer       : user3@test.nl
       4 : Mick Dundee     : user4@test.nl
       5 : Sjoerd Trekhaar : user@test.nl

GAMES :
    game_id type training **created_by started_by **opponent_id won_by date
          1    1        1          2              2           4      2 2015-08-10
          2    1        1          5              2           2      5 2015-08-10
          3    1        1          4              4           2      4 2015-08-10
          3    1        1          2              3           3      3 2015-08-10

问题是带有**的字段,它需要计算前5名对手。

我可以成为游戏创建者(created_by)我可以成为opponent_id (其他人开始游戏)。

如果我是对手我还是和另一位球员对战。

修改 例如,请使用user-id = 2。

另外:训练需要为1并且因为IS NOT NULL(需要填写)

结果SQL 大部分都与对手比赛

user_id = 4,  count = 2
user_id = 3,  count = 1
user_id = 5,  count = 1

这意味着我对用户ID 4的播放次数最多,然后是user_id = 3和user_id = 5

1 个答案:

答案 0 :(得分:-1)

根据我的理解,将根据Won_By

考虑顶级对手
 SELECT TOP 5 NAME, COUNT(*) as COUNTS FROM USERS
  INNER JOIN
  GAMES
  ON GAMES.WON_BY = USERS.user_id
  WHERE user_id <> Logon_ID
  GROUP BY NAME
  ORDER BY COUNTS

根据您的代码

导出Logon_ID