当前位置:首页 » 编程语言 » sql获取子节点
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql获取子节点

发布时间: 2023-05-31 01:13:41

sql语句查询出父节点下的所有子节点


createtable##tmp_users(idint,usernamenvarchar(255),parentidint)
declare@IDint
select@ID=idfromt_Userstwhereexists
(select*fromt_Userst2wheret2.id=t.parentidandt2.username='user1')
execAddSons@ID
select*from##tmp_users
droptable##tmp_users


--存储
createprocereAddSons@idint
as
ifexists(select*fromt_Userswhereparentid=@id)
begin
declare@tmp_IDint
declarecurcursorfor
selectidfromt_Userswhereparentid=@id
opencur
fetchnextfromcurinto@tmp_ID
while@@FETCH_STATUS=0
begin
insertinto##tmp_users
select*fromt_Userstwhereid=@tmp_ID
ifexists(select*fromt_Userswhereparentid=@tmp_ID)
begin
execAddSons@tmp_ID
end
fetchnextfromcurinto@tmp_ID
end
closecur
DEALLOCATEcur
end
--递归调用,不知道是否想要这样

㈡ SQL通过父节点获取所有子节点

这个很简单啊
表结构一般如下tablename(表名)
id--节点ID, name-- 节点名称 parentid父节点ID,

-----获取节点号为6下的所有子节点
select * from tablename t start with id =6 connect by prior id=parentid

㈢ sql 知道父节点,查询所有的子节点,运用游标,递归,存储过程

呃,因为我不清楚你的表里,这个BPROD
char(15)
老爸
里面记录的值是不是和BMWHS
对应的,所以只能说个大概。
select
sys_connect_by_path(username,'>')
"Path"
from
tmbm
start
with
id=1
connect
by
prior
id=parentid;
其中,id是你要遍历的起始点,比如你想从
厂号=XX
的这个父节点开始寻找他所有的子节点,这里就换成
start
with
BMWHS=XX
然后,connect
by
prior
id=parentid,这里id=parentid,简单解释就是寻找其他记录里,parentid和我的id相同的记录,也就是找子节点。
应该是换成你的BMWHS=BPROD(我不知道你的BPROD
BCHLD
和哪个属性是对应的,是BMWHS吗?)
如果是的话就是下面这样(username是你要返回的值,假设你还是要返回
BSEQ
序号)
select
sys_connect_by_path(BSEQ,'>')
"Path"
from
tmbm
start
with
BMWHS=XX
connect
by
prior
BMWHS=BPROD;

㈣ sql 知道父节点,查询所有的子节点,运用游标,递归,存储过程

呃,因为我不清楚你的表里,这个BPROD char(15) 老爸 里面记录的值是不是和BMWHS 对应的,所以只能说个大概。
select sys_connect_by_path(username,'>') "Path"
from tmbm
start with id=1
connect by prior id=parentid;

其中,id是你要遍历的起始点,比如你想从 厂号=XX 的这个父节点开始寻找他所有的子节点,这里就换成 start with BMWHS=XX

然后,connect by prior id=parentid,这里id=parentid,简单解释就是寻找其他记录里,parentid和我的id相同的记录,也就是找子节点。
应该是换成你的BMWHS=BPROD(我不知道你的BPROD BCHLD 和哪个属性是对应的,是BMWHS吗?)
如果是的话就是下面这样(username是你要返回的值,假设你还是要返回 BSEQ 序号)

select sys_connect_by_path(BSEQ,'>') "Path"
from tmbm
start with BMWHS=XX

connect by prior BMWHS=BPROD;

㈤ sql语句:如何通过id查找所有的子节点

使用SQL递归查询

Declare@IdInt
Set@Id=0;---在此修改父节点
WithRootNodeCTE(D_ID,D_FatherID,D_Name,lv)
As
(
SelectD_ID,D_FatherID,D_Name,0aslvFrom[LFBMP.LDS].[dbo].[LDS.Dictionary]WhereD_FatherIDIn(@Id)
UnionAll
Select[LFBMP.LDS].[dbo].[LDS.Dictionary].D_ID,[LFBMP.LDS].[dbo].[LDS.Dictionary].D_FatherID,[LFBMP.LDS].[dbo].[LDS.Dictionary].D_Name,lv+1FromRootNodeCTE
InnerJoin[LFBMP.LDS].[dbo].[LDS.Dictionary]
OnRootNodeCTE.D_ID=[LFBMP.LDS].[dbo].[LDS.Dictionary].D_FatherID
)
Select*FromRootNodeCTE

;WithTB([Cd_ID],[ConstituteID],[Cd_PID],[Cd_CName],lv)
as(
Select[Cd_ID],[ConstituteID],[Cd_PID],[Cd_CName],0aslvFROM[LFBMP.Center].[dbo].[ConstituteDetail]Where[Cd_PID]=0And[ConstituteID]=4
unionall
SelectA.[Cd_ID],A.[ConstituteID],A.[Cd_PID],A.[Cd_CName],lv+1FROMTBinnerjoin[LFBMP.Center].[dbo].[ConstituteDetail]asA
onTB.[Cd_ID]=A.Cd_PID
)
Select*FromTB

㈥ SQL递归查询所有子节点

你这样设计的表用递归来显示最恰当 我刚刚好有这个的代码 发给你参考下吧
/// <summary>
/// 绑定根节点
/// </summary>
/// <param name="id"></param>
/// <param name="ddlList"></param>
public void BindSysMenu(string id, DropDownList ddlList)
{
ListItem ll = new ListItem();
ll.Text = "╋--请选择-----";
ll.Value = "-1";
ddlList.Items.Add(ll);
DataTable dt = new ManageContentInfoBll().GetWName(id).Tables[0];
foreach (DataRow dr in dt.Rows)
{
ListItem li = new ListItem();
li.Text = "╋" + dr["W_Name"].ToString();
li.Value = dr["W_ID"].ToString();
ddlList.Items.Add(li);
BindSysMenuChild((dr["W_ID"].ToString()), ddlList, "├—");
}
}

/// <summary>
/// 绑定子节点
/// </summary>
public void BindSysMenuChild(string id, DropDownList ddlList, String separtor)
{
DataTable dt = new ManageContentInfoBll().GetWName(id).Tables[0];
foreach (DataRow dr in dt.Rows)
{
ListItem li = new ListItem();
li.Text = separtor + dr["W_Name"].ToString();
li.Value = dr["W_ID"].ToString();
string separtor_ = separtor + "——";
ddlList.Items.Add(li);
BindSysMenuChild(dr["W_ID"].ToString(), ddlList, separtor_);
}

}
sql 语句 很简单的
select * from WebSubjectMenu where W_Logo ="+id+"
W_Logo 是上级的ID
希望对你有帮助吧。

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

假如你的表名字是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

㈧ sql中根据父节点获取所有的子节点,急

--oracle
select*fromNodet
枣衡戚凳陵startwitht.id=1
拦知connectbyPRIORt.id=t.pid

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

sqlserver查询树形结构的所有子节点
用标准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 SERVER2000 查各级子节点的语句

胡锦涛强调:不断提高党的基层组织建设科学化水平
2010年06月22日 14:02:36 来源: 新华网

胡锦涛在中共中央政治局第二十一次集体学习时强调

充分认识加强党的基层组织建设重大意义

不断提高党的基层组织建设科学化水平

建党89周年前夕,胡锦涛代表党中央向奋斗在各条战线的广大基层党员、干部,向全体共产党员致以节日问候

新华社北京6月22日电 在中国共产党成立89周年前夕,中共中央政治局6月21日下午就加强党的基层组织建设问题进行第二十一次集体学习。中共中央总书记胡锦涛在主持学习时代表党中央,向奋斗在各条战线的广大基层党员、干部,向全体共产党员致以节日问候。他强调,要把继续解放思想、坚持改革开放、推动科学发展、促进社会和谐落到实处,朝着全面建设小康社会宏伟目标前进,就必须紧紧依靠各级党组织、全体党员紧密团结全国各族人民共同奋斗。只有党的基层组织都充分发挥战斗堡垒作用,党的基层干部都充分发挥骨干带头作用,全体党员都充分发挥先锋模范作用,才能保持党同人民群众的血肉联系,才能为推动党和人民事业发展不断凝聚强大力量。

国防大学军队建设与军队政治工作教研部吴杰明教授、中央组织部党建研究所高永中研究员就这个问题进行讲解,并谈了他们的意见和建议。

中共中央政治局各位同志认真听取了他们的讲解,并就有关问题进行了讨论。

胡锦涛在主持学习时发表了讲话。他指出,我们党是以民主集中制为原则建立起来的马克思主义政党,分布广泛、严密完善、富有活力的基层组织是党全部工作和战斗力的基础,是贯彻落实党的路线方针政策和各项工作任务的战斗堡垒。国际形势越是复杂多变,我国社会越是深刻变革,改革发展稳定任务越是艰巨繁重,我们越要做好抓基层打基础工作。

胡锦涛强调,加强党的基层组织建设,必须按照党的十七大和十七届三中、四中全会作出的部署,以邓小平理论和“三个代表”重要思想为指导,深入贯彻落实科学发展观,坚持围绕中心、服务大局、拓宽领域、强化功能,抓好组织体系、骨干队伍、活动载体、工作制度、场所阵地建设,着力扩大覆盖面、增强生机活力,着力解决存在的突出矛盾和问题,使党的基层组织充分发挥推动发展、服务群众、凝聚人心、促进和谐的作用,不断开创党的基层组织建设新局面。

胡锦涛就加强党的基层组织建设提出4点要求。一是要进一步健全党的基层组织体系,全面推进各领域党的基层组织建设,形成科学严密的组织架构,实现党组织和党的工作全社会覆盖,把人民群众紧密团结在党组织周围。二是要进一步推动基层党建工作创新,找准基层党建工作与中心任务的结合点,创新党的基层组织发挥作用的途径和方式,积极探索扩大党内基层民主的多种实现形式,不断增强基层党组织服务大局、推动科学发展、维护社会和谐稳定的能力。三是要进一步增强基层党员干部队伍活力,建立健全教育、管理、服务党员长效机制,形成新形势下党员经常受教育、永葆先进性的长效机制。四是要进一步构建城乡统筹的基层党建新格局,推进城乡基层党建工作双向开放、资源共享、优势互补、相互促进,发挥城市基层党建带动优势,加强对革命老区、民族地区、边疆地区、贫困地区基层党建工作的支持,推动城乡、区域基层党建工作协调发展。

胡锦涛强调,广大基层党员、干部长期奋斗在一线,遇到的矛盾和困难多、工作压力大,一定要真正重视、真情关怀、真心爱护他们。要健全党内激励、关怀、帮扶机制,从思想、工作、生活上加强对基层党员特别是老党员、生活困难党员的关怀帮助,让他们切实感受到组织的温暖。

胡锦涛指出,各级党委要坚持党要管党、从严治党,强化党委管党建、书记抓党建的责任,完善基层党建工作领导体制,加强分类指导、统筹协调、监督检查,深入调查研究,尊重党的基层组织和广大党员的首创精神,建设高素质基层党务工作者队伍,保障基层组织建设工作经费,确保加强和改进新形势下基层党建工作各项重大举措落到实处。当前,各级党组织要切实抓好深入开展创建先进基层党组织、争做优秀共产党员活动,在基层党组织和广大党员中营造学先进、赶先进、作贡献、当表率的良好风气。