2

私はこれらの記録を持っています

ここに画像の説明を入力してください

私が欲しいのは、バランスの最大値を見つけて、関連付けられた名前(外部キー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 に答える