Как найти все файлы, которые не являются родительскими для любого другого файла - PullRequest
0 голосов
/ 13 октября 2019

У меня есть следующая таблица с информацией о файлах:

enter image description here

Я хочу найти все файлы, которые не являются родительскими для других файлов. file.

SELECT 
    f1.Id, 
    f1.[Name], 
    CONCAT(f1.Size, 'KB') AS [Size]
FROM
    Files f1
WHERE 
    f1.Id NOT IN (SELECT f2.ParentId
                  FROM Files f2)
ORDER BY 
    f1.Id, 
    f1.[Name], 
    f1.Size DESC

Может кто-нибудь объяснить мне, почему этот код не показывает никаких записей, поскольку мы считаем, что файл с ID = 6 не является родительским для какого-либо файла?

1 Ответ

0 голосов
/ 13 октября 2019
Select f1.Id,f1.Name,Cast(f1.Size as varchar)+'KB' as Size from Files as f1
left join Files as f2 on f1.Id=f2.ParentId
where f2.Id is null
order by f1.Id,f2.Name,Size desc

Успех на изпита: D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...