我很难理解MAX函数是如何工作的。
这是我的桌子董事会:

idPlayer | matchday | total
---------+----------+-------
    1    |    7     |   354
---------+----------+-------
    2    |    7     |   122
---------+----------+-------
    3    |    7     |   672
---------+----------+-------
    1    |    8     |   452
---------+----------+-------
    2    |    8     |   90
---------+----------+-------
    3    |    8     |   654
---------+----------+-------

我想要最大的总数和idPlayermatchday8。但这个问题对我来说是个谜。
我试过一个简单的问题:
SELECT MAX(total), idPlayer FROM MD_board WHERE matchday=8

返回的最大值是好的(654),但idPlayer是错误的(1)。
我尝试了很多其他的查询,但是我无法得到正确的结果:(
我不太喜欢更复杂的查询,所以,如果你能帮忙的话。。。

最佳答案

有三个idPlayers用于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
    )

09-29 22:46