MySql查询选择复杂的max()

时间:2012-09-25 08:34:02

标签: mysql database max statements

我有这些记录

enter image description here

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

我尝试过与

相似的东西
SELECT MAX(b.balance), i.name 
from balance b, usr i 
WHERE i.userid=b.balanceID; 

但它没有从天平中为MAX值指定正确的名称。有什么帮助?;]

1 个答案:

答案 0 :(得分: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 Demo