例:
13:38:20 SQL> desc ttree;
 名称                                      空?      类型
 ----------------------------------------- -------- ----------------------------
 ID                                                 VARCHAR2(10)
 PID                                                VARCHAR2(10)
 PRICE                                              NUMBER13:38:20 SQL> select * from ttree;ID         PID             PRICE
---------- ---------- ----------
B          A                  20
D          B                   3
E          B                   5
G          D                   2
C          A                   1
F          C                   2
G          C                   5
G          H                   3已选择8行。已用时间:  00: 00: 00.31
13:38:23 SQL> select * from ttree start with id='B' connect by prior id=pid;ID         PID             PRICE
---------- ---------- ----------
B          A                  20
D          B                   3
G          D                   2
E          B                   5已用时间:  00: 00: 00.31
13:38:59 SQL>

解决方案 »

  1.   

    表结构:
    ID Field 标示每个节点的ID
    ParentID Field 标示该节点父节点的ID,如果该值为0,则为根节点
    注:这两个Field的定义类型和长度是相同的。其它字段可以任意设计了^_^SQL:
      已知一个根节点的ID=123,那么
      select * from table where ParentID=123;
      

  2.   

    同意楼上,每一条记录中加一个父节点字段, 然后用select ... from table_name start with connect by查询就出来了
      

  3.   

    start with 
    connect by
    我怎么从来没见过呀。大虾给点详细解释?