有向グラフのノードを表す次のデータセットがあります。
CREATE TABLE nodes (NODE_FROM VARCHAR2(10),
NODE_TO VARCHAR2(10));
INSERT INTO nodes VALUES('GT','TG');
INSERT INTO nodes VALUES('GG','GC');
INSERT INTO nodes VALUES('AT','TG');
INSERT INTO nodes VALUES('TG','GC');
INSERT INTO nodes VALUES('GC','CG');
INSERT INTO nodes VALUES('TG','GG');
INSERT INTO nodes VALUES('GC','CA');
INSERT INTO nodes VALUES('CG','GT');
視覚的表現: http ://esser.hopto.org/temp/image1.JPG
このデータセットを使用して、ユーザーにレベル(2など)を入力してもらいます。これにより、特定のノードから2「ホップ」離れたすべてのノードが返されます。
NODE_FROM NODE_TO
TG GC
TG GG
AT TG
GT TG
http://esser.hopto.org/temp/image2.JPG
私の現在の試みは次のようになります。
SELECT node_from, node_to
FROM nodes
WHERE level <= 2 -- Display nodes two "hops" from 'AT'
START WITH node_from = 'AT'
CONNECT BY NOCYCLE PRIOR node_to = node_from
OR node_to = PRIOR node_from
GROUP BY node_from, node_to;
http://esser.hopto.org/temp/image3.JPG
ご覧のとおり、GT->TGの関係がありません。