我很难理解MAX函数是如何工作的。
这是我的桌子董事会:
idPlayer | matchday | total
---------+----------+-------
1 | 7 | 354
---------+----------+-------
2 | 7 | 122
---------+----------+-------
3 | 7 | 672
---------+----------+-------
1 | 8 | 452
---------+----------+-------
2 | 8 | 90
---------+----------+-------
3 | 8 | 654
---------+----------+-------
我想要最大的总数和
idPlayer
的matchday
8。但这个问题对我来说是个谜。我试过一个简单的问题:
SELECT MAX(total), idPlayer FROM MD_board WHERE matchday=8
返回的最大值是好的(654),但
idPlayer
是错误的(1)。我尝试了很多其他的查询,但是我无法得到正确的结果:(
我不太喜欢更复杂的查询,所以,如果你能帮忙的话。。。
最佳答案
有三个idPlayer
s用于matchday = 8
!您可能使用了MySQL,它允许这样错误的查询,您应该知道MySQL返回randomidPlayer
值。因此,对于同一个查询,明天可以获得不同的idPlayer
。
你可能需要在特定的total
中有最高matchday
的玩家:
SELECT *
FROM MD_board MD1
WHERE matchday=8 and total =
(
SELECT MAX(total)
FROM MD_board MD2
WHERE MD2.matchday = MD1.matchday
)