日期:2014-05-18  浏览次数:20595 次

貌似叫递归查询
C# code

/*
id  upid  name
1    0    一级1
2    0    一级2
3    1    二级1
4    1    二级2
5    1    二级3
6    3    三级4
*/

输出
/*
id   upname   name
4     一级 1   二级2
........
*/

求解。。。



------解决方案--------------------
SQL code

/*
id  upid  name
1    0    一级1
2    0    一级2
3    1    二级1
4    1    二级2
5    1    二级3
6    3    三级4
*/



if OBJECT_ID('tb')is not null
drop table tb
go
 create table tb(id int, upid int, name varchar(50))
insert into tb values(1  ,  0  ,  '一级1')
insert into tb values(2  ,  0  ,  '一级2')
insert into tb values(3  ,  1  ,  '二级1')
insert into tb values(4  ,  1  ,  '二级2')
insert into tb values(5  ,  1  ,  '二级3')
insert into tb values(6  ,  3  , '三级4')

--输出
/*
id   upname   name
4     一级 1   二级2
........
*/
 
 select t.id,b.name,t.name 
 from tb t join tb b on t.upid=b.id 
 where t.id=4


id          name                                               name
----------- -------------------------------------------------- --------------------------------------------------
4           一级1                                                二级2

(1 行受影响)