请问下面两个sql语句有什么区别,
我按照数据库写的下面的那个,并没有读懂第一个sql语句
有必要去学第一种吗?
insert into @tmp select Id,@Layer from MIX_单位 where Id in (
select OrgId from MIX_UserPrivilege where UserId='BE9EE1CC-1818-43FF-8F1E-02098A8F59ED'
)
while @@ROWCOUNT>0
begin
select @Layer=@Layer+1
insert into @tmp select Id,@Layer from MIX_单位 where ParentId in (
select Id from @tmp where Layer=@Layer-1
) and Id not in (
select Id from @tmp
)
end
select Id from MIX_机组 where 单位Id in (
select Id from @tmp
)
select Id from MIX_机组 where 单位Id in( select Id from MIX_单位 where ParentId in( select OrgId from MIX_UserPrivilege))
本文对比了两个SQL语句:一个使用循环递归查询单位层级结构;另一个直接查询单位及下属单位。通过分析帮助理解递归查询的实现方式及其应用场景。
1281

被折叠的 条评论
为什么被折叠?



