查询以查找距离特定节点两步的所有节点

时间:2010-03-17 01:24:10

标签: sql-server graph

假设我在表中有两列表示图形,第一列是FROMNODE 第二个是TONODE。 我想知道的是,我们如何找到距离特定节点两步的所有节点。 假设我有一个编号为'1'的节点,我想知道距离它两步之遥的所有节点。

我试过(我假设表名为图表)

SELECT FROMNODE FROM GRAPH WHERE TONODE=1

这是为了选择连接到节点1的所有节点,但我无法弄清楚如何找到距离节点1两步的所有节点?

2 个答案:

答案 0 :(得分:0)

一步一步!

select step2.tonode
from   graph step1
join   graph step2 on step2.fromnode = step1.tonode
where  step1.fromnode = 1

答案 1 :(得分:0)

加入同一张桌子......

SELECT g2.FromNode
FROM Graph as g1 
JOIN Graph as g2 ON g2.ToNode = g1.FromNode
WHERE g1.ToNode = @startnode
;