0

我想在我的一个查询中插入一个条件,但真的不知道该怎么做。基本上,我按它们的文件夹_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,但是怎么做呢?

感谢您的回复。瓦尔

4

0 回答 0