查询在自引用表中的数据库中存储的二叉树中打印从根到给定节点的所有节点

时间:2013-06-02 12:44:02

标签: database algorithm

在最近的一次采访中,我被问到这个问题。 二叉树存储在以下模式的数据库中

表树(int nodeId,int parentId,int data)

这是一个自引用表。 我被要求编写查询以打印从根到给定节点的路径中的所有节点的数据。 是否可以在一个查询中执行此操作?

我给出的解决方案是将所有行加载到hashMap,其中key为nodeId,value为parentId,并使用map从给定节点打印到root的路径。

如果我知道二叉树中节点的深度,我可以编写嵌套查询来打印它。 用于打印从根到节点的所有节点的示例查询,其中nodeId ='4',深度为2,如下所示: “从Tree n中选择n.data,n1.data,n2.data,其中nodeId在(从树n1中选择parentId,其中nodeId在(从树n2中选择pId,其中nodeId ='4');”

是否可以在不使用嵌套查询的情况下执行此操作?如果是这样,我可以用什么查询来做到这一点?

0 个答案:

没有答案