为每个客户端选择最后3个条目并将其插入到列中

时间:2013-05-06 15:19:51

标签: mysql ms-access

需要您的帮助:需要为每个客户选择最后三条评论并将其插入列中。所以,输入看起来像这样:

ID| Client_ID|        Comment_Date|          Comments|  
1|          1|           29-Apr-13|                 d|  
2|          1|           30-Apr-13|                dd|   
3|          1|           01-May-13|               ddd|  
4|          1|           03-May-13|              dddd|  
5|          2|           02-May-13|                 a|  
6|          2|           04-May-13|                aa|  
7|          2|           06-May-13|               aaa|  
8|          3|           03-May-13|                 b|  
9|          3|           06-May-13|                bb|  
10|         4|           01-May-13|                 c|

我需要获得的输出如下:

Client_ID|  Last comment|   (Last-1) comment|   (Last-2) comment|  
        1|          dddd|                ddd|                 dd|  
        2|           aaa|                 aa|                  a|  
        3|            bb|                  b|   
        4|             c|       

请帮助!!

2 个答案:

答案 0 :(得分:0)

SELECT x.*
  FROM my_table x 
  JOIN my_table y 
    ON y.client_id = x.client_id 
   AND y.id >= x.id 
 GROUP 
    BY x.client_id
     , x.id 
HAVING COUNT(*) <=3;

答案 1 :(得分:-1)

如果不认为你可以通过SQL请求得到它。也许你可以,但我认为用PHP更容易。例如,您可以通过此请求获得评论:

SELECT * FROM Comment
WHERE Client_ID = ?
LIMIT 0,3
ORDER BY Date DESC

它将返回用户的最后三条评论。然后,你可以随心所欲地做任何事情!

希望它会有所帮助。