2016-06-19 10 views
-1

グループを特定の列で並べ替える必要があります。MySQL GROUP BYで列を並べ替える

私は次のことを試してみました:

SELECT u.level, max(u.score),n.nick 
FROM database.userdata u, database.nicks n 
WHERE n.user = u.id 
GROUP BY level 

しかし、これは、このスコアのためのユーザ名を最大スコアを印刷し、ない...

を私はこれをどのように修正することができますか?

ありがとうございます!

+0

あなたのクエリは、2つのテーブルを言及しますが、それらを一緒に結合するための任意の条件を提供していません。つまり、MySQLは2つのテーブルの行の可能な組み合わせをすべて考慮します。 *確かに、あなたは 'JOIN'と' GROUP BY'をオンラインで使っている実例を見つけることができます。 –

答えて

1

は、この方法を試してみてください:

SELECT n.nick, u1.score, u1.level 
FROM database.nicks AS n 
JOIN database.userdata AS u1 ON n.user = u1.id 
JOIN (
    SELECT level, max(score) AS score 
    FROM database.userdata 
    GROUP BY level 
) AS u2 ON u1.level = u2.level AND u1.score = u2.score