2012-09-25 4 views
2

Je ces documentsrequête MySql select max complexe()

enter image description here

Ce que je veux est de trouver la valeur maximale en équilibre et le récupérer avec le nom associé (j'ai les clefs étrangères == userid balanceID) , par exemple dans ce cas ce serait "name2 | 2000". Y a-t-il un Mysql'ist qui pourrait me dire comment y parvenir?

J'ai essayé quelque chose de similaire à

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

MAIS il ne marche pas attribuer un nom correct à la valeur MAX de l'équilibre. Toute aide ?;]

+0

Il semble y avoir aucun champ commun (pour une jointure) entre vos tables, à savoir que je ne vois pas un moyen de connexion d'un équilibre à un utilisateur. Je pense que vous devez clarifier votre conception. – user1666959

+0

Il a déjà dit, userid == balanceID – CrazyCasta

Répondre

3

Vous devez ajouter une clause GROUP BY dans votre requête.

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; 

ou vous ne souhaitez que peut-être trouver la personne avec le highrd balance droit?

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

Droit, merci beaucoup, c'était ce que je cherchais :))) –

+0

@Omegawow vous êtes les bienvenus! –

+0

humm, je suis débutant dans ce site, comment puis-je faire?: D –