用DataGrid的时候碰到SQL的问题。请教各位大虾。
数据库中有这样一张数据表。
id f_id name
1 0 zd
2 1 zd001
3 1 zd002
4 0 li
5 4 li001
6 4 li002
(其中id是主键,f_id是父节点的主键,name是名称。)
如何上述表中用复合嵌套的SQL语句检索出下面这张表:
id 父名字 自己的名字
1 __ zd
2 zd zd001
3 zd zd002
4 __ li
5 li li001
6 li li002
劳驾各位大虾费神了,小弟在此万分感谢。
------解决方案--------------------上面寫錯了
應該是:
select a.id,b.name,a.name from tablename as a left join tablename as b on a.f_id=b.id
------解决方案--------------------???什么问题
declare @t table(id int,fid varchar(20),name varchar(30))
insert into @t select '1 ', '0 ', 'zd '
union all select '2 ', '1 ', 'zd001 '
union all select '3 ', '1 ', 'zd002 '
union all select '4 ', '0 ', 'li '
union all select '5 ', '4 ', 'li001 '
union all select '6 ', '4 ', 'li002 '
select a.id,isnull(b.name, '_ ') '父名字 ',a.name '自己的名字 ' from @t as a left join @t as b on a.fid=b.id
(6 行受影响)
id 父名字 自己的名字
----------- ------------------------------ ------------------------------
1 _ zd
2 zd zd001
3 zd zd002
4 _ li
5 li li001
6 li li002
(6 行受影响)