例如
id        name       masterid
101       啊啊宝宝     0              
1101      报表此次     101
现在已知 子记录id=1101    如何可以查到“啊啊宝宝”呢?有没有什么简洁高效的sql?
select套select的效率低  不太想要这样的

解决方案 »

  1.   

    select name from tab start with id=1101 connect by prior masterid=id and level=2
      

  2.   

    select t1.* from test t1,test t2
    where t1.id=t2.masterid and t2.id='1101'
      

  3.   


    level = 2   得到了 父记录的名字和子记录的名字     
      

  4.   


    数据多后 一定会很慢     尽量还是想找到 Oracle自带的分析函数解决
      

  5.   

    select name from (select id,masterid ,name from tbl start with id=1101 connect by prior masterid =id) where masterid=0;
      

  6.   

    select t2.* from test t1,test t2 where t1.id=2 and t1.masterid=t2.id ;
    这个可以的