请问在一个表中,保存着一棵树的各个节点信息.节点又包含有子节点,深度(树多少层)不知道,有id,name,parent字段,parent字段记录的是父节点的ID,根节点该字段为空,如何用一条SQL语句查出所有的节点信息,各子节点记录包含在父节点记录后面?

解决方案 »

  1.   

    由于初学Oracle,不是很明白呀,请高手写明白一些
      

  2.   

    递归取到以ID为parent的数据
    select id
    from table
    start with id = 10000
    connect by prior id=parent;递归取到以ID为son的数据
    select id
    from table
    start with id = 10000
    connect by prior parent=id
      

  3.   

    没可能用一条SQL语句查出所有的节点信息,以前有类似的提问。
      

  4.   

    我这样写,好像是可以了
    select * from table
     start with parent is null --parent null表示根节点
     connect by prior id=parent ORDER SIBLINGS BY id;
      

  5.   

    SELECT SYS_CONNECT_BY_PATH(REGION, '/')
    FROM table
    START WITH PRIOR  is not null
    CONNECT BY PRIOR  id=parent 
    层次就更清楚了