读书人

sql查询儿孙节点和本身数据

发布时间: 2013-08-04 18:26:16 作者: rapoo

sql查询子孙节点和本身数据
我有一张表S_ROOM ,最多有三层结构。我输入名称后将他的子孙节点和自己都获取到。
数据有下面。如我输入总部,应该下面5条数据都出来。输入审计,结果出现 2,3.



id name parentId
1 总部 0
2 财务 1
3 审计 2
4 信息 1
5 内审 1



我自己的sql是

select * from s_room where parentid in(select id from s_room where parentid in ( select id from s_room where name='总部'))
or id in (select id from s_room where parentid in ( select id from s_room where name='总部')) or c_name='总部';

[解决办法]
用递归查询 Oracle数据库的写法:

SELECT *
FROM S_ROOM D
CONNECT BY PRIOR D.ID = D.PARENTID
START WITH D.NAME = '财务'

用的时候只需要修改最后的名字即可

读书人网 >Java Web开发

热点推荐