问题如下:树状数据结构A课程(id:1)(parentid:0)
   单元一(id:3)(parentid:1)
     课程一(id:5)(parentid:3)
     课程二(id:6)(parentid:3)
   单元二(id:4)(parentid:1)
     课程三(id:9)(parentid:4)
B课程(id:2)(parentid:0)
   单元一(id:7)(parentid:2)
   单元二(id:8)(parentid:2)比如我想通过id=1可以得到它下面各级的数据,id=3得到它下面各级的数据等等,不知道怎么做,请各位指教,在线等

解决方案 »

  1.   

    start with ...connect by 語法select * from yourtable 
    start with id =1 
    connect by prior parentid= id 
      

  2.   

    SQL> select * from tb_tree start with id=1 connect by prior id=parent_id;        ID NAME        PARENT_ID
    ---------- ---------- ----------
             1 a
            11 aa                  1
           111 aaa                11
            12 ab                  1
           121 aba                12SQL> select * from tb_tree connect by prior id=parent_id start with id=1;        ID NAME        PARENT_ID
    ---------- ---------- ----------
             1 a
            11 aa                  1
           111 aaa                11
            12 ab                  1
           121 aba                12
    刚发现原来connect by ..start with 也可以倒过来用
    :)
    SQL> select level lv,t.* from tb_tree t connect by prior id=parent_id start with id=1;        LV         ID NAME        PARENT_ID
    ---------- ---------- ---------- ----------
             1          1 a
             2         11 aa                  1
             3        111 aaa                11
             2         12 ab                  1
             3        121 aba                12