我的问题是,我有一个由两列组成的表。它描述了文件夹。第一列是父文件夹的X
,第二列是子文件夹的第二列。然后,使用此表我可以说文件夹{{1}}中的文件夹。
但是我可以拥有位于文件夹1中的文件夹2中的文件夹3。 我正在搜索的是一种从一个 SQL 请求中的文件夹ID中查找所有父文件夹的方法。
例如,从ID = 3
开始,我的请求必须提供[1,2]
。
所以,有一段时间我可以找到所有父文件夹,但如果该文件夹有457个父文件,那么只有一个文件夹会非常重!
以下请求提供父级的id
:
$sql = "SELECT IDFolder1 FROM folder_has_folder WHERE IDFolder2='$this->id'";
但我不知道有多少家长有文件夹。
你有想法做到这一点吗? 谢谢你的帮助!
答案 0 :(得分:1)
例如:
create table dbo.FOLDER (id_parent int, id_child int)
insert into dbo.FOLDER (id_parent, id_child) values (NULL,1), (1,2), (2,3)
with CTE as
(select id_parent, id_child
from dbo.FOLDER
where id_parent is null
union all
select f.id_parent, f.id_child
from dbo.FOLDER f
join CTE c on f.id_parent = c.id_child
)
select * from CTE