有一个有父子关系的表TB:ID PARENT
1
2 1
7 2
3 2
4 2
5 3
6 3怎么这通过函数或sql语句用id查找出它的根节点,譬如输入id=3,结果如下:
ID PARENT
5          3
6          3输入id=2,结果如下:
ID PARENT
4         2
5         3
6         3
7         2
输入id=1,结果如下:
ID PARENT
4         2
5         3
6         3
7         2求高手解答。

解决方案 »

  1.   

    哈哈,看看这个是不是你的要求,
    个人觉得楼上的节点关系有点问题……
    不吝赐教!select * from tb 
    start with parent = 3
    connect by prior id = parent
    order by id
      

  2.   

    connect by ... start with ...SQL> select id, parent from test
      2  connect by prior id = parent
      3  start with  parent = 2
      4  /        ID     PARENT
    ---------- ----------
             7          2
             3          2
             5          3
             6          3
             4          2SQL> 
    SQL> select id, parent from test
      2  connect by prior id = parent
      3  start with  parent =
      4  1;        ID     PARENT
    ---------- ----------
             2          1
             7          2
             3          2
             5          3
             6          3
             4          26 rows selected
      

  3.   

    lz最初的要求我也是没有懂,不过你要是想通过某一节点查找出它所有的页节点,可以通过写SQL函数,采用递归的方法,循环找出每个页节点.