我正在努力争取我与之对抗的前五名对手。
表格如下
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
答案 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