我想在我的一个查询中插入一个条件,但实际上并不知道该怎么做。 基本上,我正在按文件夹_id排序一堆文件,即它们所属的文件夹(使用folder_id命令)。对于这些文件组中的每一组,我现在想要的是选择满足特定条件的第一个文件的查询。如果文件夹中的任何文件都不满足该条件,则查询应该选择文件夹中可用的第一个文档。
这是我的查询(简化):
select folder_id,
file_id,
first_name
from f_file
where first_name = 'John'
order by folder_id
所以,如果我现在的结果是:
FOLDER ID FILE ID AUTHOR
A 32 John
A 41 John
A 56 Thomas
A 78 Peter
B 02 Peter
B 03 Peter
B 45 Peter
C 34 John
C 56 Thomas
C 77 Peter
C 86 John
D 12 Peter
D 34 Thomas
D 89 Thomas
对于每个文件夹,我希望查询只显示由John创建的第一个文档(最低的file_id)。如果该文件夹中没有John创建的文档,那么任何其他作者的第一个文档都不会。
FOLDER ID FILE ID AUTHOR
A 32 John
B 02 Peter
C 34 John
D 12 Peter
因此,ID必须是最低的,但作者必须是John或另一个。
我的想法是在IF EXISTS
子句中插入WHERE
子句,但是怎么做?
感谢您的回复。 VAL