我有两张桌子。想象第一个是一个目录,包含很多文件(第二个表)。
第二个表(文件)包含一个修改日期。
现在,我想选择所有目录并按其修改日期 ASC 对它们进行排序(因此,最新的修改最上面)。而不是显示该文件夹,我只想显示最旧的 Mofified 文件(因此,修改 DESC,按文件夹 ID 分组)
按修改日期对所有文件进行排序是没有问题的。
我的查询看起来(简化)是这样的:
SELECT
f.*,
d.*
FROM
files f
LEFT JOIN
directories d
ON
f.directory_id = d.id
ORDER BY
f.modification_date DESC
这给了我所有文件的修改顺序(最新的最上面) - 现在,我想在一个文件夹中对文件进行分组,只看到最旧的修改(他们有“看到”的属性,但考虑到这一点没什么大不了的,所以一旦看到修改,将显示第二旧的,等等......)
我如何对结果进行排序by modification_date DESC
,但也可以modification_date ASC
在 Grouping 之后对其进行排序?
例子:
目录:
id | name
1 Folder 1
2 Folder 2
文件
id | Name | d_id | modification_datee
1 f1 1 2008-01-01
2 f2 1 2011-01-01
3 f3 2 2013-01-01
4 f4 2 2010-01-01
结果我想要:
f4 (cause directory 2 contains the NEWEST modification (2013), but f4 is the oldest out of that folder)
f1 (cause directory 1 contains the SECOND newest modification, but f1 is the oldest out of that folder)
有什么建议么?