当前位置: 首页 > 面试题库 >

有没有简单的方法来查询节点的子级?

连坚白
2023-03-14
问题内容

最近,我一直在使用嵌套集模型中的废话。我喜欢为几乎所有有用的操作和视图设计查询。我坚持的一件事是如何选择节点的直接子代(并且
选择子代,而不是进一步的子代!)。

老实说,我确实知道一种方法-但它涉及大量的SQL。我敢肯定有一个更直接的解决方案。


问题答案:

您是否阅读过您张贴的文章?在“查找节点的直接下属”标题下

SELECT node.name, (COUNT(parent.name) - (sub_tree.depth + 1)) AS depth
FROM nested_category AS node,
    nested_category AS parent,
    nested_category AS sub_parent,
    (
        SELECT node.name, (COUNT(parent.name) - 1) AS depth
        FROM nested_category AS node,
        nested_category AS parent
        WHERE node.lft BETWEEN parent.lft AND parent.rgt
        AND node.name = 'PORTABLE ELECTRONICS'
        GROUP BY node.name
        ORDER BY node.lft
    )AS sub_tree
WHERE node.lft BETWEEN parent.lft AND parent.rgt
    AND node.lft BETWEEN sub_parent.lft AND sub_parent.rgt
    AND sub_parent.name = sub_tree.name
GROUP BY node.name
HAVING depth <= 1
ORDER BY node.lft;

但是,我要做的(这是作弊)是将嵌套集与邻接列表结合在一起-我在表中嵌入了一个“ parent_id”,因此我可以轻松地请求一个节点的子代。



 类似资料:
  • 本文向大家介绍mysql 递归查找菜单节点的所有子节点的方法,包括了mysql 递归查找菜单节点的所有子节点的方法的使用技巧和注意事项,需要的朋友参考一下 背景 项目中遇到一个需求,要求查处菜单节点的所有节点,在网上查了一下,大多数的方法用到了存储过程,由于线上环境不能随便添加存储过程, 因此在这里采用类似递归的方法对菜单的所有子节点进行查询。 准备 创建menu表: 插入数据: 得到的目录结构如

  • 问题内容: 我正在尝试使用一个非常简单的方法(不是出于实际目的,而是为了使其正常工作),但是我一直遇到相同的错误。 码 码 最后两行应为我提供每个Post对象的标签数量。在这里,我不断收到相同的错误: 问题答案: 您的示例的问题之一是您不能用作子查询,因为它试图评估查询集并返回计数。 因此,人们可能会认为正确的方法是使用替代方法。也许是这样的: 这不能工作有两个原因: 查询集选择所有字段,而只能依

  • 问题内容: 似乎有很多方法可以在Python中定义单例。关于堆栈溢出是否有共识? 问题答案: 我没有真正的需要,因为具有功能(而不是类)的模块可以很好地用作单例。它的所有变量都将绑定到模块,该模块无论如何都无法重复实例化。 如果您确实希望使用类,则无法在Python中创建私有类或私有构造函数,因此,您只能通过使用API​​的约定来保护自己免受多重实例化。我仍然将方法放在模块中,并将模块视为单例。

  • 本文向大家介绍MySQL实现树状所有子节点查询的方法,包括了MySQL实现树状所有子节点查询的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了MySQL实现树状所有子节点查询的方法。分享给大家供大家参考,具体如下: 在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但很遗憾,在MySQL的

  • 问题内容: 我正在尝试弄清楚如何解析一些XML(对于Android应用程序),在Java中很难做到这一点似乎很荒谬。似乎需要创建一个具有各种回调(startElement,endElement等)的XML处理程序,然后您必须注意将所有这些数据更改为对象。类似于本教程。 我真正需要的只是将XML文档更改为多维数组,甚至更好的是拥有某种Hpricot处理器。有没有办法做到这一点,还是真的必须在上面的示

  • 我正在开发一个java程序,它接受输入的分数,给出输入的总数和平均值,但是我很难计算出如何获得当前输入的最高分数“我使用了大量嵌套的else-if语句,但必须有一种简单的方法来实现这一点,而不是键入100个else-if语句这是我的代码。我在else-if语句开始的地方添加了一条注释,以确定最高级别