2010-03-17 72 views
1

假設我在表中有兩列代表圖表,第一列是FROMNODE ,第二列是TONODE。 我想知道的是,我們將如何找到離特定節點兩步之外的所有節點。 假設我有一個編號爲'1'的節點,並且我想知道距離它兩步的所有節點。查詢查找距離特定節點兩步的所有節點

我已經試過(我假設表名爲圖)

SELECT FROMNODE FROM GRAPH WHERE TONODE=1 

這是選擇所有連接到節點1的節點,但我無法弄清楚如何將我找到所有離節點1兩步的節點?

回答

0

一步一個腳印吧!

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

感謝您的答覆.....但,這給1作爲輸出節點之一,這可能是不可能的,因爲我們從節點1開始並查看連接到節點1的所有其他節點,並且距離節點1兩步。 假設2和3連接到節點1並且4,5連接到節點2 ....... 8,9連接到節點3 .....然後我們必須找到4,5,8,9,因爲它們距離節點1兩步。 – iecut 2010-03-17 04:25:49

+0

對於混淆感到抱歉... ...你得到了正確的方式!再次感謝。 – iecut 2010-03-17 04:32:02

0

加入返回到相同的表...

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