0

テーブル

**Posts:**
| id | userID | title |

| 1  |    6   | text1 |
| 2  |    5   | text2 |
| 3  |    8   | text3 |


**Votes:**
    | id | userID | postID |

    | 1  |    6   |   2    |
    | 2  |    5   |   2    |
    | 3  |    8   |   1    |
    | 4  |    8   |   3    |
    | 5  |    8   |   2    |



**Sql**

SELECT p.*,(SELECT count(*) FROM votes AS v WHERE v.postID=p.id AS count)
FROM posts AS p WHERE p.userID = 6
ORDRER BY count DESC

これは上位3つのリストになりますが、リストに次のようなものがある場合は一番上に置きたいです

Your position is 3

ユーザーがログインしている場合、ユーザーの位置を計算する方法は? 彼の投稿の投票数に基づく

4

1 に答える 1

0

これを試して ::

Select rank, temp_p.userID from
(
select @rownum:=@rownum+1 ‘rank’, userId, count(1) as count
from
 (SELECT @rownum:=0) r, 
 votes v 
 inner join posts p on (v.postID=p.id)

 ) temp_p
ORDER BY temp_p.count DESC 
WHERE temp_p.userID.userID = 6
于 2012-07-12T16:32:51.657 に答える