SQL (根据子节点查询父节点信息)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL (根据子节点查询父节点信息)相关的知识,希望对你有一定的参考价值。

题目是这样的:
在数据库中有这样的数据
0 问题类型 -1
1 财务管理 0
2 设备管理 0
3 项目管理 0
4 物质管理 0
5 人资管理 0
6 领导查询 0
7 工作流 0
8 员工自助服务 0
9 企业门户 0
10 其他问题 0
11 SES员工自助报销 0
12 人事操作 5
13 过账问题 5
14 工资标准 5
15 信息维护 5
16 调动操作 12
17 退休操作 12
18 其他人事操作 12
19 过账操作 13
20 过账冲销 13
21 工资核算 14
22 工资结果删除 14
23 公积金与保险上下限基数 14
25 工资信息 15
显示当nodeId = 25时显示它的所有父级节点信息名
也就是 5,人资管理/15,信息维护/25,工资信息,
nodeId nodeName parentId
0 问题类型 -1
.. ... ...

参考技术A declare @lt table(id int,level int)
declare @level int
declare @findid int
--初始化数据
set @findid = 25/*找nodeId = 25*/
--end of 初始化数据

set @level = 1
insert @lt select @findid,@level
while @@rowcount > 0
begin
set @level = @level + 1
insert @lt select a. parentId,@level
from 你的表名 a, @lt b
where a.nodeId = b.nodeId and b.level = @level - 1
end
--连接得到结果
select a.*
from 你的表名 a inner join @lt b
on a.nodeId=b.nodeId
参考技术B http://blog.csdn.net/feixianxxx/archive/2009/07/25/4379342.aspx本回答被提问者和网友采纳

mysql如何根据很多子节点查询出父节点,只要一条路径上的

各位大神求助,现知道很多用户ID,部门结构是一个树结构,用户表里有部门ID,怎么通过用户ID反向查出树结构啊,关键是有很多的用户ID,而且这些用户不一定在同一个目录下,就比如是一个考核员看所有他管辖的不同部门人员,同时要把组织机构树也展示出来,但是考核员非管辖的人员以及组织不展示。
之前一直用的oracle,才发现mysql这么麻烦,完全小白的感觉。。。谢谢各位大神,着急啊

参考技术A select SYS_CONNECT_BY_PATH(列名,'>') from 表名
start wITh 列名='0000000001'
connect by prior 列名(孩子列所有的列名)=列名(父列所有的列名)

这个查出来的样式如下:
000000000001>00000000>0000

不知道是不是你想要的。追问

谢谢你哈,我说的是MySQL,Oracle的这个我知道。

谢谢你哈,我说的是MySQL,Oracle的这个我知道。

谢谢你哈,我说的是MySQL,Oracle的这个我知道。

以上是关于SQL (根据子节点查询父节点信息)的主要内容,如果未能解决你的问题,请参考以下文章

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

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

SQL递归获取所有父节点的函数

求高手帮忙sql写法:树节点放一个表中,怎么用一条语句查询一个节点及对应的所有父节点信息。

高手帮忙:sql 里怎样递归判断父节点和子节

JS根据子节点递归获取所有父节点的集合