最初にテーブル構造を示します(関連するフィールドのみが言及されます)
/* The table Users */
user_id | user_name | user_registration_date
1 | USER1 | 19/09/2010
2 | USER2 | 20/09/2010
/* The table Levels_Completed */
user_id | level_id
1 | 1
1 | 2
2 | 1
スコアボードを表示したいのですが。リストの最初のユーザーは、彼が完了したレベルの数が最も多いユーザーになります。上記の例では、USER1はUSER2の上に表示されます。
次のデータを受け取りたい:
user_id, user_name, user_registration_date, COUNT(level_id rows) AS score
受け取ったSQL行ごとに、スコアの数順に並べられています。例:
1 | USER1 | 19/09/2010 | 2
2 | USER2 | 20/09/2010 | 1
使い方は知ってINNER JOIN
いますが、カウントと順序は現在のレベルを上回っていると思います。助けてください?