2012-06-20 67 views
2

我有一个数据集,其中包含(其他值)hierarchyids和Parent-hierarchyids。 对于另一个查询,我需要hierarchyids的最低公共祖先,因为我对sql和espacially hierarchyids相当陌生。SQL:查找hierarchyids的最低公共祖先

ID   HID   ParentHID 
1   0x5CB280 0x5CA0 
2   0x5CABBB08 0x5CABBA 
3   0x5CB270 0x5CA0 
+0

什么最低的共同祖先?请提供您的需求和数据集示例:您有两个字段,一个是ID,另一个是记录的父ID。 –

+0

做了一些编辑,希望现在能更容易理解 – Fantaftw

+0

是Microsoft SQL吗?如果是的话,我有一个链接到文档显示答案,但我不想发布它,如果我不确定你正在使用的SQL Server! :) –

回答

0

假设您的层次结构不是严重的平衡偏差(例如列表)获得祖先链是便宜的。接下来,你所要做的就是带两条祖先链,做一组交集,然后找到一个最长的层次结构id。