我有一个非常简单的数据库,由这些表组成。在这里,我试图编写一个查询来选择玩游戏桌中游戏最多的玩家。
通过查看下面的例子,您可以看出答案是Ben当然,因为PID 2(来自玩家表中的Ben)在Games表中出现次数最多,这意味着Ben赢得了最多的游戏。 / p>
但我不知道如何编写查询以选择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
有没有人有任何建议?谢谢!
答案 0 :(得分:2)
好吧,加入玩家和游戏,计数,逐个玩家,按照计数desc排序(最好的第一个),如果你想要第一个,则限制为一个。
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;
答案 1 :(得分:1)
我猜这里没有计算,只是游戏表中的一个简单整数值表示玩家ID的游戏数量......
SELECT pl.name FROM Players pl join Games g ON pl.NID=g.GID
ORDER BY g.games DESC
limit 1;