0

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

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

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

我给出的解决方案是将所有行加载到 hashMap 中,键为 nodeId,值为 parentId,并使用映射打印从给定节点到根的路径。

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

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

4

0 回答 0