0

我有一个由这些表组成的非常简单的数据库。在这里,我正在尝试编写一个查询,以从 Games 表中选择参与最多游戏的玩家。

只要看下面的例子,你就可以知道答案当然是 Ben,因为 PID 2(即来自 Players 表的 Ben)在 Games 表中出现的次数最多,这意味着 Ben 赢得了最多的比赛。

但我不确定如何编写查询以选择 Games 表中最经常出现的值。

Players         Games          

PID | name      GID | PID
----|-----      ----|------
1   |  Al       A   |  3
2   |  Ben      A   |  2
3   |  Carl     A   |  2
4   |  Jack     A   |  1
5   |  Ron      A   |  4

有没有人有什么建议?谢谢!

4

2 回答 2

2

Well, join players and games, count, group by player, order by count desc (greatest first), and limit to one if you want the first.

SELECT p.NID, p.name, COUNT(*)
FROM Players p
INNER JOIN Games g ON g.PID= p.NID
GROUP BY p.NID, p.name
ORDER BY COUNT(*) DESC
LIMIT 1;
于 2012-10-09T18:55:22.723 回答
1

我猜没有计数要做,只是 Games 表中的一个简单整数值表示玩家 ID 的游戏数......

SELECT pl.name FROM Players pl join Games g ON pl.NID=g.GID
ORDER BY g.games DESC
limit 1;
于 2012-10-09T18:57:16.940 回答