一个评论的表,用户可以嵌套评论,用parentID来标识父级评论ID,如果没有父级,则parentID为0
字段:
id(主键),parentID(父ID), author(作者)示例数据:
id,parentID,author
1,0,张三
2,1,张三
3,1,李四
4,3,王五
5,0,张三需求:
1.通过一个sql语句可以查询指定主键的所有子记录,如上的数据,当id=1的时候,应该可以获取id为1,2,3,4的记录,因为id为2,3的是id为1的子记录,而id为4的是id为3的子记录。嵌套理论上是无限级的,实际操作中会控制级数。
2.通过作者可以查询到对应的父子记录

解决方案 »

  1.   

    如果你的层次不是有限的,比如最多10层。则无法使用一句SQL语句完成。
    如果有最大层次限制,你可以直接用left join 10次,如果没有限制,则需要用程序或存储过程实现。MySQL中进行树状所有子节点的查询 
    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/02/4142971.aspx
      

  2.   

    2.通过作者可以查询到对应的父子记录这个好象直接用JOIN查询就可以了吧。select  *
    from 一个评论的表 a,一个评论的表 b, 一个评论的表 c
    where a.id=b.parentID and b.id=c.parentID(
      

  3.   

    呵呵,因为是多级的,所以父级可能还有父级,单纯的join应该是不可以的