2013-02-17 28 views
0

last Question,我问了一下,从存储用户对deferments的帖子做了所有的操作记录表歌厅的最后三个用户的所有操作,现在我要的是得到相同的东西,但为每个职位获得最后三个用户的所有操作每篇文章

,通过最后三个用户对每个岗位邓恩的所有操作

history table 
    id  | post_id | action | user_id 
    1  | 5  | 1   | 3 
    1  | 23  | 2   | 1 
    2  | 24  | 2   | 6 
    3  | 34  | 1   | 7 
    4  | 35  | 1   | 1 
    5  | 36  | 1   | 1 
    6  | 23  | 2   | 3 
    7  | 24  | 2   | 1 
    8  | 23  | 1   | 4 
    9  | 24  | 1   | 5 
    10  | 24  | 1   | 1 
    11  | 23  | 1   | 2 
    12  | 23  | 4   | 1 

感谢和抱歉,如果这似乎是一个重复的职位

+0

你想获得最后3个用户每个岗位的? – sgeddes 2013-02-17 20:13:12

+0

不!我想要的是每个帖子的最后三位用户获得所有操作donne,谢谢 – 2013-02-17 20:19:13

+0

好的,我对我的查询进行了更改。如果我正确理解了您的要求,那么对于每篇文章,您都希望最后3个用户(每个帖子的不同用户)以及他们的所有操作。 – sgeddes 2013-02-17 20:38:57

回答

0

Coudl这是你在找什么对于?

代码:

SELECT a.user_ID, 
group_concat(a.post_id), 
group_concat(a.action) 
FROM tableName a 
     INNER JOIN 
     (
      SELECT DISTINCT user_ID 
      FROM tableName 
      ORDER BY ID DESC 
      LIMIT 3 
     ) b ON a.user_ID = b.user_ID 
group by a.user_id 
ORDER BY a.User_ID; 


| USER_ID | GROUP_CONCAT(A.POST_ID) | GROUP_CONCAT(A.ACTION) | 
-------------------------------------------------------------- 
|  2 |      7 |      3 | 
|  3 |     5,5,4 |     1,2,5 | 
|  6 |      7 |      2 | 
+0

如果要扩大*每个职位的所有行动的**最后三**用户* .. – bonCodigo 2013-02-17 20:29:15

+0

是否与PostgreSQL的工作表中的行,您可以删除'group_concat'? – 2013-02-17 20:32:51

+0

@ cool-man - 为什么需要使用postgresql?你标记了你的问题MySQL?哪个DB? – sgeddes 2013-02-17 20:39:35

1

我认为这将工作:

SELECT a.user_ID, a.post_id, a.action 
FROM tableName a 
     INNER JOIN 
     (
      SELECT DISTINCT 
       @curRow:=IF(@prevRow=post_Id,@curRow+1,1) rn, 
       user_ID, 
       Post_Id, 
       @prevRow:=Post_Id 
      FROM (
       SELECT DISTINCT Post_Id, User_Id 
       FROM TableName 
       ORDER BY Post_Id, ID DESC 
      ) t 
       JOIN (SELECT @curRow:= 0) r 

     ) b ON a.post_id = b.post_id AND a.user_id = b.user_id 
WHERE b.rn <= 3 
ORDER BY a.post_id, a.User_ID 

而且Fiddle

+0

我所做的一切行动只是不明白!它完美的工作在小提琴中,但它不会给我的服务器相同的结果,我工作在wamp服务器2.2,mysql版本5.5.24 – 2013-02-18 11:43:12

相关问题