2

我有这些记录

在此处输入图像描述

我想要的是在 balance 中找到最大值并使用关联的名称检索它(我有外键 userid==balanceID),例如在这种情况下它将是“name2 | 2000”。这里有任何Mysql'ist可以告诉我如何实现这一目标吗?

我尝试了类似的东西

SELECT MAX(b.balance), i.name 
from balance b, usr i 
WHERE i.userid=b.balanceID; 

但它没有为余额中的 MAX 值分配正确的名称。有什么帮助吗?;]

4

1 回答 1

3

您需要GROUP BY在查询中添加子句。

SELECT   MAX(b.balance) as Maximum_Balance, i.name 
FROM     balance b INNER JOIN usr i 
            ON i.userid=b.balanceID
GROUP BY i.name;

或者也许你只想找到拥有最高balance权利的人?

SELECT  b.balance  as Maximum_Balance, i.name 
FROM     balance b INNER JOIN usr i 
            ON i.userid=b.balanceID
WHERE   b.balance = (SELECT MAX(balance) FROM balance)

SQLFiddle 演示

于 2012-09-25T08:36:24.243 回答