+ -
当前位置:首页 → 问答吧 → sql查询父id下的最后一个子id

sql查询父id下的最后一个子id

时间:2011-10-20

来源:互联网

SQL code

composite   single
A            B
B            C
C            D
AA           BB



参数为 A 查出 D
参数为 B 查出 D
参数为 AA 查出 BB。

要用标准sql来写,存储过程也行。不知道有什么好的办法。

作者: xiaobadi   发布时间: 2011-10-20

SQL code
;with f as
(
select * from tb where composite=@composite
union all
select a.* from tb a join f b on a.single=b.composite
)
select * from f

作者: fredrickhu   发布时间: 2011-10-20

[code=SQL]
create table #t(id int,childid int)
insert into #t
select 1 , 2 union all
select 2 , 3 union all
select 3 , 4 union all
select 5 , 6

;with t as
(
select flag = 1 , * from #t where id = 1 --换成实际参数
union all
select flag = t.flag + 1 ,#t.* from #t inner join t on #t.id = t.childid
)
select top 1 childid from t order by flag desc

drop table #t
----------------------------------------
childid
-----------
4

(1 行受影响)

/code]

作者: happyandsad   发布时间: 2011-10-20

SQL code

create table #t(id int,childid int)
insert into #t
select 1 , 2 union all
select 2 , 3 union all
select 3 , 4 union all
select 5 , 6

;with t as
(
select flag = 1 , * from #t where id = 1 --换成实际参数
union all
select flag = t.flag + 1 ,#t.* from #t inner join t on #t.id = t.childid
)
select top 1 childid from t order by flag desc

drop table #t
----------------------------------------
childid
-----------
4

(1 行受影响)



作者: happyandsad   发布时间: 2011-10-20

楼上的两位大哥,;with f as是什么意思,我用的是mysql,支持你们的写法吗

作者: xiaobadi   发布时间: 2011-10-20

引用 4 楼 xiaobadi 的回复:

楼上的两位大哥,;with f as是什么意思,我用的是mysql,支持你们的写法吗

参照

作者: roy_88   发布时间: 2011-10-20

参考下贴中的方法。

http://blog.csdn.net/acmain_chm/article/details/4142971
MySQL中进行树状所有子节点的查询

作者: ACMAIN_CHM   发布时间: 2011-10-20

引用 6 楼 acmain_chm 的回复:
参考下贴中的方法。

http://blog.csdn.net/acmain_chm/article/details/4142971
MySQL中进行树状所有子节点的查询
我只要最后一个子节点,不要所有的。。

作者: xiaobadi   发布时间: 2011-10-20

相关阅读 更多

热门下载

更多