有个表:
id  pid  name
1    0   A
2    0   B
3    1   C
4    1   D
5    1   E
6    2   F
7    2   J
8    3   G
现在只给出一个ID 请问如何写sql语句可以列出 此ID下的所有子集name比如给出了一个ID为1 最后的sql要实现的结果和这个一样:ID in(1,3,4,5,8) ... 
请问sql语句该怎么写?????

解决方案 »

  1.   

    what's the subset for?
      

  2.   

    所有子集? 那也就是多条sql.? 另外LZ的结贴率很好很强大
      

  3.   

    是不是oracle?是的话可以看一下Connect By Start With 这个用法select * from table connect by pid = prior id start with id =1
    这个结贴率先有点意思
      

  4.   

    你是想获取某个树形节点的所有子节点吧,如果你是想实现这样的功能,建议你的树形结构在数据表中的表示,不要用“父子结构”的方式,而改用“编码结构”的方式;比如:001
    ├─00101
    │  ├─0010101
    │  └─0010102
    ├─00102
    └─00103
        ├─0010301
        └─0010302表结构:
    id name
    001 name_001
    00101 name_00101
    0010101 name_0010101
    00102 name_00102
    .
    .
    00103 name_00103这样的话,查起来就容易得多,效率也高:
    select * 
    from table1
    where (id like '001%')
      

  5.   

    oracle 中的自关联是不是oracle?是的话可以看一下Connect By Start With 这个用法select * from table connect by pid = prior id start with id =1
      

  6.   

    什么数据库?
    mysql需要自己写树状查询,oracle可以利用connect by
      

  7.   

    select * from table where id in(select id from table where pid=1)
      

  8.   

    是mysql数据库 请问怎么用sql语句来实现!!
      

  9.   

    单sql无法实现,需要用存储过程或者编程。
      

  10.   

    存储过程 能否放到sql中直接运行?