SQL 從 2017開始支持 graph table, 想請教如何寫 recursive query?
實體如下:
CREATE TABLE Person (
ID INTEGER PRIMARY KEY,
name VARCHAR(100)
) ;
CREATE TABLE friendOf AS EDGE;
INSERT INTO Person (Id, name)
VALUES (1, 'John')
, (2, 'Mary')
, (3, 'Alice')
, (4, 'Jacob')
, (5, 'Julie');
INSERT INTO friendOf
VALUES ((SELECT $NODE_ID FROM Person WHERE ID = 1), (SELECT $NODE_ID FROM Person WHERE ID = 2))
, ((SELECT $NODE_ID FROM Person WHERE ID = 2), (SELECT $NODE_ID FROM Person WHERE ID = 3))
, ((SELECT $NODE_ID FROM Person WHERE ID = 3), (SELECT $NODE_ID FROM Person WHERE ID = 1))
, ((SELECT $NODE_ID FROM Person WHERE ID = 4), (SELECT $NODE_ID FROM Person WHERE ID = 2))
, ((SELECT $NODE_ID FROM Person WHERE ID = 5), (SELECT $NODE_ID FROM Person WHERE ID = 4));
查詢 'John' 的朋友:
select p1.name, p2.name
from Person p1, friendOf f, Person p2
where match (p1-(f)->p2)
and p1.name = 'John'
但是如果我想查詢所有的 'John' 的朋友, 一級朋友的朋友, ...
SQL 該如何寫?
如果不用graph table 的話,是可以寫recursive query的.
謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/16173.html
標籤:疑難問題
上一篇:C++如何指定堆疊的起始地址
下一篇:請教SQl 速度優化
