sqlserver查询树,sql查询树

sqlserver查询树形结构的所有子节点

sqlserver查询树形结构的所有子节点

桓仁网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。成都创新互联自2013年起到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联

用标准sql的with实现递归查询(sql2005以上肯定支持,sql2000不清楚是否支持):

with subqry(id,name,pid) as (

select id,name,pid from test1 where id = 5

union all

select test1.id,test1.name,test1.pid from test1,subqry

where test1.pid = subqry.id

)

select * from subqry;

sql 查询树形数据。

如果树的层数固定就可以用语句查询,但效率比较低。例如你说的三层:

select id,v2.name+name from t1 inner join

(select id,v1.name+name as name from t1 inner join

(select id,name from t1 where parentid = 0) v1 on t1.parentid = v1.id) v2 on t1.parentid = v2.id

sqlserver遍历树形目录

使用sqlserver递推查询,可以直接查询出来。

参考资料:

WITH lmenu(nav_id,nav_name,nav_parentid,level) as

(

SELECT nav_id,nav_name,nav_parentid,0 level FROM nav nav_parentid=0

UNION ALL

SELECT A.nav_id, A.nav_name,a.nav_parentid, b.level+1 FROM gs_nav A,lmenu b where a.nav_parentid= b.nav_id and nav_id = 10

)

SELECT * from lmenu

具体SQL语句还需要自己验证一下,上面的自己看着乱写的。


分享标题:sqlserver查询树,sql查询树
文章位置:http://pwwzsj.com/article/dsccgdo.html