select查询树型结构的表
String,int,int
areaname,id,上级id
总部,0,-1
华中,1,0
华东,2,0
华北,3,0
华南,4,0
华西,5,0
上海,21,2
北京,31,3
武汉,11,1
广州,41,4
杭州,22,2
西湖区,221,22
上面是数据库里的表,我想通过select构建列外个视图如下
总部,0,-1
华中,1,0 总部
华东,2,0 总部
华北,3,0 总部
华南,4,0 总部
华西,5,0 总部
上海,21,2 华东
北京,31,3 华北
武汉,11,1 华中
广州,41,4
杭州,22,2
西湖区,221,22
就是读出他的上级id对应的名称
------解决方案--------------------select a.id,a.name,b.name 上级name from tablea a,
tablea b where a.上级id=b.id;
------解决方案--------------------LZ,1楼的理解是正确的,你如果要构建视图,如下:
CREATE OR REPLACE VIEW MY_TEST AS
select t2.areaname,t2.id,t2.pid,t1.areaname
from tablename t1,
tablename t2
where t2.pid = t1.id(+);
======================result=========================
AREANAME ID PID AREANAME
-------- ---------- ---------- --------
总部 0 -1
华中 1 0 总部
华东 2 0 总部
华北 3 0 总部
华南 4 0 总部
华西 5 0 总部
武汉 11 1 华中
上海 21 2 华东
杭州 22 2 华东
北京 31 3 华北
广州 41 4 华南
西湖区 221 22 杭州
12 rows selected