分组并选择表格中的最后一个插入

时间:2010-06-21 08:49:33

标签: sql mysql

我有一个表用一个简单的版本控制系统保存一些文件,如:

ID | FILENAME | CONTENT | DATE
1 | index.php | Content of index.php v1 | timestamp
2 | main.css| Some CSS content | timestamp
3 | index.php | Content of index.php v2 | timestamp

我需要编写一个SQL请求来在此表中查找每个文件的最后插入内容。

为此,我尝试按日期进行分组和排序,但是请求:

SELECT * FROM modeles GROUP BY filename ORDER BY date DESC

但它不起作用,因为订单是在小组之后完成的,因为小组接受第一个条目。

如果有人在这里知道解决方案(这可能很容易,但我不知道该怎么做......)。

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用子查询

SELECT ID, FILENAME, CONTENT, DATE
FROM TABLE AS Main
WHERE ID = (SELECT MAX(Sub.ID) FROM TABLE AS Sub WHERE Sub.FILENAME = Main.FILENAME)

如果ID并非总是在最后编辑过的__

上为高,则为WHERE
WHERE DATE = (SELECT MAX(Sub.DATE) FROM TABLE AS Sub WHERE Sub.FILENAME = Main.FILENAME)