表结构是这样的
CalssId 标识id
Sid 上级id (就是上级的标识Id)
填充数据后是这样
CalssId Sid
1 0
2 1
3 1
4 2
4 2
5 3
5 3
这样的表结构在无限分级的系统中应该是广泛应用吧!当你知道某个结点的id而需要查询其结点下所有项怎么办。
我也实在想不到其他的办法,就只有用临时表和Goto来实现;
应该有更好的方法吧,知道的请指教一下,小声告诉我!
这些个代码很简单,不需要解释了吧!
程序猿们,我也跟风开了网店,主要经营土特产,云南核桃,四川正宗土鸡蛋。有需要的就支持一下小店哈 七彩山川美食(http://qcsc.taobao.com)
Create TABLE #Temp1 (TempId int)
Create TABLE #Temp2 (TempId int)
Create TABLE #Temp3 (TempId int)
insert into #Temp1 select Classid from Class where sid=@ClassId
Up:
insert into #Temp3 Select TempId from #Temp1
insert into #Temp2 Select Classid from Class where sid in (select Tempid from #Temp1 )
delete #Temp1
insert into #Temp1 Select TempId from #Temp2
delete #Temp2
if @@Rowcount=0
goto ExitUp
goto Up
ExitUp:
drop table #Temp1
drop table #Temp2
Select * from #Temp3
drop table #Temp3
return
Create TABLE #Temp2 (TempId int)
Create TABLE #Temp3 (TempId int)
insert into #Temp1 select Classid from Class where sid=@ClassId
Up:
insert into #Temp3 Select TempId from #Temp1
insert into #Temp2 Select Classid from Class where sid in (select Tempid from #Temp1 )
delete #Temp1
insert into #Temp1 Select TempId from #Temp2
delete #Temp2
if @@Rowcount=0
goto ExitUp
goto Up
ExitUp:
drop table #Temp1
drop table #Temp2
Select * from #Temp3
drop table #Temp3
return