我有一个名为VirtualFileSystem的表,该表存储项目文件夹的文件结构。它具有以下列:
id,名称,parent_id和Is_folder
其中parent_id是主列ID的外键。
现在,我需要编写一个查询来删除空文件夹,即如果未将id用作parent_id(如果未将其用作父对象表示其空文件夹)且is_folder为True,则删除记录。
我们非常感谢您的帮助。
这是示例数据,第一和第二行是文件夹,第三和第四条记录是第一行/文件夹中的文件。第二个记录/文件夹为空,因为没有记录包含其id作为parent_id。因此,我想编写一个查询以删除第二行。
id, name, parent_id, is_folder
-------------------------------
1, folder1, null, T
2, folder2, null, T
1_0, file0, 1, F
1_1, file1, 1, F
答案 0 :(得分:0)
delete from VirtualFileSystem
where id not in
(
select distinct parent_id from VirtualFileSystem
)
and Is_folder = 'T'
答案 1 :(得分:0)
DELETE A
FROM VirtualFileSystem AS A
LEFT JOIN VirtualFileSystem AS B
ON A.id = B.parent_id
WHERE A.is_folder = 'T'
AND B.id IS NULL