47 lines
1.2 KiB
SQL
47 lines
1.2 KiB
SQL
SELECT
|
|
PF.[Id] as [Id],
|
|
PF.[PageId] as [PageId],
|
|
PF.[Name] as [Name],
|
|
PFR.[ContentType] as [ContentType],
|
|
PFR.[Size] as [Size],
|
|
PF.[CreatedDate] as [CreatedDate],
|
|
PFR.[Data]
|
|
FROM
|
|
[PageFile] as PF
|
|
INNER JOIN [Page] as P
|
|
ON P.Id = PF.PageId
|
|
INNER JOIN PageRevisionAttachment as PRA
|
|
ON PRA.PageId = P.Id
|
|
AND PRA.PageFileId = PF.Id
|
|
INNER JOIN (
|
|
SELECT
|
|
PF.Id as PageFileId,
|
|
PR.Revision as PageRevision,
|
|
MAX(PRA.FileRevision) as LatestAttachedFileRevision
|
|
FROM
|
|
Page as P
|
|
INNER JOIN PageFile as PF
|
|
ON PF.PageId = P.Id
|
|
INNER JOIN [PageRevision] as PR
|
|
ON PR.PageId = P.Id
|
|
INNER JOIN PageRevisionAttachment as PRA
|
|
ON PRA.PageId = P.Id
|
|
AND PRA.PageFileId = PF.Id
|
|
AND PRA.PageRevision = PR.Revision
|
|
WHERE
|
|
P.Navigation = @PageNavigation
|
|
AND PF.Navigation = @FileNavigation
|
|
AND PR.Revision = Coalesce(@PageRevision, P.Revision)
|
|
GROUP BY
|
|
PF.Id
|
|
) as Latest
|
|
ON Latest.PageFileId = PF.Id
|
|
AND Latest.LatestAttachedFileRevision = PRA.FileRevision
|
|
INNER JOIN PageFileRevision as PFR
|
|
ON PFR.PageFileId = PF.Id
|
|
AND PFR.Revision = Latest.LatestAttachedFileRevision
|
|
WHERE
|
|
P.Navigation = @PageNavigation
|
|
AND PF.Navigation = @FileNavigation
|
|
AND PRA.PageRevision = Latest.PageRevision
|