2017-06-17 43 views
0

用下面的MySQL表:PHP MYSQL - 獲取基於單個用戶的等級(位置)的倍數行

+---------+-----------+ 
| user_id | user_name | 
+---------+-----------+ 
| 1 | user 1 | 
| 2 | user 2 | 
| 3 | user 3 | 
| 4 | user 4 | 
| 5 | user 5 | 
+---------+-----------+ 
+---------+-------------+ 
| user_id | user_staff | 
+---------+-------------+ 
| 1 | xxxxxx  | 
| 1 | xxxxxx  | 
| 2 | xxxxxx  | 
| 2 | xxxxxx  | 
| 2 | xxxxxx  | 
| 3 | xxxxxx  | 
| 3 | xxxxxx  | 
| 4 | xxxxxx  | 
+---------+-------------+ 

此查詢得到我的排名表:

SELECT usr.user_name, COUNT(stf.user_id) AS score 
    FROM table_stafs AS stf 
    LEFT JOIN table_users AS usr ON usr.user_id=stf.user_id 
    GROUP BY usr.id 
    ORDER BY score DESC 

如何獲得單個用戶的位置?

+0

的位置的記錄數爲您排序得分。 – hakre

+0

我需要一個查詢來獲取單個用戶的職位,這個職位是基於職員行數 –

+0

這裏的東西嗎? https://stackoverflow.com/q/3333665/367456 – hakre

回答

0

您可以在查詢結果中添加一個自動遞增列,如果你想行列,例如:

SELECT usr.user_id,COUNT(stf.*) AS score, @r := @r + 1 AS rank 
FROM table_stafs AS stf, (SELECT @r := 0) a 
LEFT JOIN table_users AS usr ON usr.user_id=stf.user_id 
GROUP BY usr.id ORDER BY score DESC 
+0

如果您認爲這是答案,請在網站上提供現有的問答資料(通過評論和近距離投票)。 – hakre

+0

這給了我table_staff中的所有行的計數,而不是user_id的單個用戶的計數:/ –

+0

@PhoxerRobertoBaglieri更新了答案.. –

相關問題