Oracle中的层次查询
表结构:
tree_key , p_id , node_id ,node_type , depart_type
1 , 0 , A1 , 0 , null
2 , A1 , B1 , 1 , 1
3 , B1 , B2 , 1 , 2
4 , B2 , B2 , 2 , null
5 , B2 , U1 , 2 , nulltree_key: 表PK
p_id :父节点ID
node_id :本节点ID
node_tpye:本节点类型(0公司,1部门,2用户)
depart_tpye:部门类型(1总部,2分部) 怎么用层次查询把树的结果表现出来?或者用其他查询方式.
从记录可以看出,用户ID和分部部门的ID相同,重点就是在这里,怎么才能让查询不进入死循环?请大虾们指点怎么样实现通用的SQL,现在真实数据也有这样的情况发生,所以请大家想想办法帮小弟解决下,如果有经验的大哥认为这样的记录不能用SQL实现树结构的查询请告诉在下...只有用程序控制NODE_ID为唯一字段要求结果:
level ,node_id ,node_type
1 , A1 , 0
2 , B1 , 1
3 , B2 , 1
4 , B2 , 2
4 , U1 , 2
表结构:
tree_key , p_id , node_id ,node_type , depart_type
1 , 0 , A1 , 0 , null
2 , A1 , B1 , 1 , 1
3 , B1 , B2 , 1 , 2
4 , B2 , B2 , 2 , null
5 , B2 , U1 , 2 , nulltree_key: 表PK
p_id :父节点ID
node_id :本节点ID
node_tpye:本节点类型(0公司,1部门,2用户)
depart_tpye:部门类型(1总部,2分部) 怎么用层次查询把树的结果表现出来?或者用其他查询方式.
从记录可以看出,用户ID和分部部门的ID相同,重点就是在这里,怎么才能让查询不进入死循环?请大虾们指点怎么样实现通用的SQL,现在真实数据也有这样的情况发生,所以请大家想想办法帮小弟解决下,如果有经验的大哥认为这样的记录不能用SQL实现树结构的查询请告诉在下...只有用程序控制NODE_ID为唯一字段要求结果:
level ,node_id ,node_type
1 , A1 , 0
2 , B1 , 1
3 , B2 , 1
4 , B2 , 2
4 , U1 , 2
connect by
start with
的用法