2012-09-25 182 views
2

我有這些記錄MySQL查詢選擇複雜MAX()

enter image description here

我要的是平衡找到最大值,並以相應的名稱進行檢索(我有外鍵的用戶ID == balanceID) ,例如在這種情況下,它將是「name2 | 2000」。 這裏有任何Mysql'ist誰可以告訴我如何做到這一點?

我想類似的東西,以

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

但它不從均衡分配正確的名稱MAX值。任何幫助?]

+0

似乎有沒有共同的區域(對連接)您的表之間,也就是我看不到連接的平衡用戶的一種方式。我認爲你需要澄清你的設計。 – user1666959

+0

他已經說過了,userid == balanceID – CrazyCasta

回答

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; 

或者你只想找到highrd 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

+0

對,非常感謝,這就是我正在尋找:))) –

+0

@Omegawow歡迎您! –

+0

humm,我是這個網站的新手,我該怎麼做?:D –