有这样一个表是树结构的,知道最顶层父结点的id值,我想用这个id值获取下面所有的结点信息,用一条sql语句可以实现吗?CREATE TABLE ta
(
 id int,
 name varchar(20),
 parentid int,
 orders int
)

解决方案 »

  1.   

    想必有点难,SQL 主要专注数据操作方面,对于逻辑结构等还是需要一些编程语言的支持。要的话,用存储过程应该可以实现吧,存储过程可以使用条件、循环等语句,那就比较给力了。
      

  2.   

    mysql里面不能用sql进行递归,只能用sp
    http://shanchao7932297.blog.163.com/blog/static/136362420113115108334/
      

  3.   

    一般都引入lft,rgt算法,就一句搞定。
    得到所有子节点:
    select * from treetable where 当前lft值 < lft and 当前rgt值 > rgt
    得到所有父节点
    select * from treetable where 当前lft值 between lft and rgt缺点是维护树的时候麻烦一点,增删改某个节点,相应的lft,rgt要有所变化。
      

  4.   

    参考下贴中的多种方法MySQL中进行树状所有子节点的查询
    http://blog.csdn.net/acmain_chm/article/details/4142971