mysql 嵌套查询语句求教

conis 2010-05-24 04:27:14
一个评论的表,用户可以嵌套评论,用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.通过作者可以查询到对应的父子记录
...全文
177 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
conis 2010-05-24
  • 打赏
  • 举报
回复
呵呵,因为是多级的,所以父级可能还有父级,单纯的join应该是不可以的
ACMAIN_CHM 2010-05-24
  • 打赏
  • 举报
回复
2.通过作者可以查询到对应的父子记录

这个好象直接用JOIN查询就可以了吧。

select *
from 一个评论的表 a,一个评论的表 b, 一个评论的表 c
where a.id=b.parentID and b.id=c.parentID(
ACMAIN_CHM 2010-05-24
  • 打赏
  • 举报
回复
如果你的层次不是有限的,比如最多10层。则无法使用一句SQL语句完成。
如果有最大层次限制,你可以直接用left join 10次,如果没有限制,则需要用程序或存储过程实现。

MySQL中进行树状所有子节点的查询
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/02/4142971.aspx
原文:http://bbs.chinaunix.net/thread-1688208-1-1.html

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧