我有一个表用一个简单的版本控制系统保存一些文件,如:
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
但它不起作用,因为订单是在小组之后完成的,因为小组接受第一个条目。
如果有人在这里知道解决方案(这可能很容易,但我不知道该怎么做......)。
谢谢。
答案 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)