0

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

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|       

请帮忙!!

4

2 回答 2

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;
于 2013-05-06T16:05:48.927 回答
-1

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

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

它将返回给您用户的最后三个评论。然后,你可以用它做任何你想做的事情!

希望它会有所帮助。

于 2013-05-06T15:27:43.900 回答