crespo1985ban 2013-04-10 17:23
浏览 489
已采纳

SQL,根据分组ID,查询该分组下的所有分组以及分组下的分组

描述:一张分组表 为简化问题,只列出核心字段:
id:分组ID,
name:分组名称;
parentID : 父分组的ID

问题是:能不能通过SQL,对于指定的分组,查出下面所有的分组(包括分组下的分组)。

希望的效果:比如分组1下面有分组2和分组3,分组2下面还有分组4,现在给定分组1的ID,希望查询出来的结果包括分组2,分组3,以及分组4。

  • 写回答

5条回答 默认 最新

  • clxy大叔 2013-04-11 13:55
    关注

    这个问题是个历史悠久的问题。

    从结论说,想一句SQL文是搞不定。特别是楼主还不想依赖DB。
    (大多数是DB里写函数的。)

    如果需求只是列出根节点的所有子孙节点的话,简易的解决方案是表上再加个RootID的字段。

    如果DB根本不让动,或者需求是从任意节点起的话,就只能程序里再循环了。

    1. 服务器端程序里面循环。
    2. 客户端JS异步请求。

    这两种。
    为了效率,可以一次取两层。类似
    [code="sql"]

    ...
    where id = {param} or parentID = {param}
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题