一棵树
作者:英雄无敌 日期:2005-07-12
经过两个星期断断续续的努力,终于把这棵树种下了,这是棵可以拖拽修改树结构的树,中间有700行javascript代码,用了5个sql存储过程,或许有点复杂,或许有比这更简单的办法,不过我想再简单这700行js代码是免不了的。这过程也体会到“sql语法的博大精深”(某老大语),比如递归是树用的算法中最经典的,但是在sql中怎么办?不能用递归,怎么编历树?一个循环加一个临时表就能解决问题
表的结构是这样的
id int,pid int
--创建一个临时表
create table #a(id int,pid int)
declare @pare int
set @pare=@pID
insert into #a (id,pid) values (@id,0)
WHILE(@@ROWCOUNT<>0)
begin
insert into #a
select id,parent from tb_user_topic
where parent in (select ID from #a) and id not in(select ID from #a)
end
这样临时表中存放的就是编历过后的节点,简单啊
表的结构是这样的
id int,pid int
--创建一个临时表
create table #a(id int,pid int)
declare @pare int
set @pare=@pID
insert into #a (id,pid) values (@id,0)
WHILE(@@ROWCOUNT<>0)
begin
insert into #a
select id,parent from tb_user_topic
where parent in (select ID from #a) and id not in(select ID from #a)
end
这样临时表中存放的就是编历过后的节点,简单啊
[本日志由 英雄无敌 于 2005-08-04 01:14 PM 编辑]
上一篇: 今天改版后第一个log下一篇: 祝贺网站备案成功
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: 5338
发表评论