SQL语句查询出一个父节点下的所有子节点

idusernameparentid1user102user213user324user43用一条SQL查出user1下面的所有子用户(2,3,4都是他的子用户)怎么查如... id username parentid
1 user1 0
2 user2 1
3 user3 2
4 user4 3
用一条SQL查出user1下面的所有子用户(2,3,4都是他的子用户)怎么查
如果没有比较好的办法,查出他下面的用户2和3也可以
parentID是父节点,也就是关联主键id的
展开
 我来答
西安_白小鹏
推荐于2018-05-06 · TA获得超过436个赞
知道小有建树答主
回答量:127
采纳率:0%
帮助的人:91.3万
展开全部
假如你的表名字是tt,创建下面的存储过程,使用存储过程即可查询。

create proc querytree
@user varchar(100)
as
begin
declare @id int
declare @T_tmp table(id int,username varchar(100),parentid int)
insert into @T_tmp select * from tt where username=@user
while(@@rowcount>0)
begin
insert into @T_tmp select * from tt where parentid in (select id from @T_tmp) and id not in(select id from @T_tmp)
end
select * from @T_tmp where username<>@user
end
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniapp16e43ddfde28
2010-08-10 · TA获得超过639个赞
知道小有建树答主
回答量:737
采纳率:0%
帮助的人:529万
展开全部
同一个表不能差出来的
不过下面这句可以实现差出所有有父id的条目 如果要在加上 user1那就不行了
select * from user where parentid in (select id from user)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
badkano
2010-08-10 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885371
团长

向TA提问 私信TA
展开全部
select b.* from tablename a,tablename b where a.id<=b.parentid
and a.username='user1'
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
blue02130102
2010-08-10 · 超过10用户采纳过TA的回答
知道答主
回答量:27
采纳率:0%
帮助的人:0
展开全部
楼主,我完全没看明白你的意思。字段之间的关系你都没有说清楚。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式