Mysql 为每个客户端选择最后3个条目,并将其插入到列中
需要您在以下方面的帮助:需要为每个客户端选择最后三条注释,并将其插入到列中。因此,输入如下所示:Mysql 为每个客户端选择最后3个条目,并将其插入到列中,mysql,ms-access,Mysql,Ms Access,需要您在以下方面的帮助:需要为每个客户端选择最后三条注释,并将其插入到列中。因此,输入如下所示: ID| Client_ID| Comment_Date| Comments| 1| 1| 29-Apr-13| d| 2| 1| 30-Apr-13| dd| 3| 1| 01-M
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|
求求你,救命 如果您不认为可以通过SQL请求获得此信息。也许你可以,但我认为使用PHP更容易。例如,您可以通过以下请求获得您的评论:
SELECT * FROM Comment
WHERE Client_ID = ?
LIMIT 0,3
ORDER BY Date DESC
它将返回用户的最后三条评论。然后,你可以用它做任何你想做的事
希望能有所帮助。选择x*
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;
从我的表x
加入我的桌子
在y.client\u id=x.client\u id上
和y.id>=x.id
组
由x.client_id提供
,x.id
拥有COUNT(*)你可以,而且,这非常简单。这将使他在每个组中排名前三,但你仍然必须将其转换为交叉表查询。是的-除非我在应用程序级别处理,否则草莓,谢谢你的代码!谜题的第一部分已经解决了!那么,如何将其转换为交叉表并获得最终结果呢?如前所述,我认为最好在应用程序级别处理数据显示问题(而不是数据存储和检索问题)(例如,使用一点PHP)。也就是说,pivot表查询在这些fair Wall中已经被覆盖了很多次了!