Запрос, чтобы найти все узлы, которые находятся в двух шагах от конкретного узла - PullRequest
1 голос
/ 17 марта 2010

Предположим, у меня есть два столбца в таблице, которая представляет график, первый столбец - FROMNODE и второй - это ТОНОД. Что я хотел бы знать, так это то, как мы найдем все узлы, которые находятся в двух шагах от конкретного узла. Предположим, у меня есть узел с номером 1, и я хотел бы знать все узлы, которые находятся в двух шагах от него.

Я пытался (я предполагаю, что имя таблицы в виде графика)

SELECT FROMNODE FROM GRAPH WHERE TONODE=1

Это чтобы выбрать все узлы, которые подключены к узлу 1, но я не мог понять, как найти все узлы, которые находятся в двух шагах от узла 1?

Ответы [ 2 ]

0 голосов
/ 17 марта 2010

Присоединиться к одному столу ...

SELECT g2.FromNode
FROM Graph as g1 
JOIN Graph as g2 ON g2.ToNode = g1.FromNode
WHERE g1.ToNode = @startnode
;
0 голосов
/ 17 марта 2010

Делайте это по одному шагу за раз!

select step2.tonode
from   graph step1
join   graph step2 on step2.fromnode = step1.tonode
where  step1.fromnode = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...