id name parentid
10011 光仔热力公司 10004
100013 第三分公司 10001
100012 第二分公司 10001
10001 北京热力公司 0
10002 上海热力公司 0
10004 刘德华热力公司 0
100011 第一分公司 10001
我想查询结果如下:
id name parentid name
10011 光仔热力公司 10004 刘德华热力公司
100013 第三分公司 10001 北京热力公司
100012 第二分公司 10001 北京热力公司
10001 北京热力公司 0
10002 上海热力公司 0
10004 刘德华热力公司 0
100011 第一分公司 10001 北京热力公司如何实现?
(select '10011' as ID, ' 光仔热力公司' as name, '10004' as parentid
from dual
union all
select '100013' as ID, '第三分公司' as name, '10001' as parentid
from dual
union all
select '100012' as ID, '第二分公司' as name, '10001' as parentid
from dual
union all
select '10001' as ID, '北京热力公司' as name, '0' as parentid
from dual
union all
select '10002' as ID, '上海热力公司' as name, '0' as parentid
from dual
union all
select '10004' as ID, '刘德华热力公司' as name, '0' as parentid
from dual
union all
select '100011' as ID, '第一分公司' as name, '10001' as parentid from dual)select t1.*, t2.name as parent_name
from tab t1
left join tab t2
on t1.parentid = t2.id
(select name
from table
where id=a.parentid) name
from table a;