programing

OQGRAPH 쿼리에서 노드 간의 관계를 선택할 수 있습니까?

powerit 2023. 9. 20. 20:48
반응형

OQGRAPH 쿼리에서 노드 간의 관계를 선택할 수 있습니까?

MariaDB https://mariadb.com/kb/en/library/oqgraph-storage-engine/ 용 OQGRAPH 스토리지 엔진을 사용하고 있으며 노드 간의 관계를 구현하고 싶습니다.

https://mariadb.com/kb/en/library/oqgraph-examples 을 기반으로 한 예시 데이터:

표: 사람들_관계

origid destid relationship
1      2      friend
2      3      friend
3      4      friend
4      5      father
2      6      mother
5      6      sibling

1에 대한 모든 destid 노드를 쿼리할 때:

SELECT * FROM people_graph g
WHERE g.latch='dijkstras' AND g.origid=1;

각 노드에 대한 최단 경로를 순서대로 가져옵니다.

latch       origid  destid  weight  seq linkid
dijkstras   1       NULL    4       6   5
dijkstras   1       NULL    3       5   4
dijkstras   1       NULL    2       4   6
dijkstras   1       NULL    2       3   3
dijkstras   1       NULL    1       2   2
dijkstras   1       NULL    0       1   1

하지만 어떤 노드가 관계로 이어지는지도 알고 싶습니다.즉,관계(previd)의 원래 노드(이름이 previd)입니다.

예:

latch       origid  destid  weight  seq linkid  previd
dijkstras   1       NULL    4       6   5       4
dijkstras   1       NULL    3       5   4       3
dijkstras   1       NULL    2       4   6       2
dijkstras   1       NULL    2       3   3       2
dijkstras   1       NULL    1       2   2       1
dijkstras   1       NULL    0       1   1       NULL

결과를 특수 관계로 제한할 수 있습니다.

SELECT * FROM people_graph g
JOIN people_relationships d ON d.destid = g.linkid AND d.origid = g.previd
WHERE g.latch='dijkstras'
AND g.origid=1
AND d.relationship='friend';

친구와 친구는 돌아오고 친구는 돌아오고 가족은 없습니다.

언급URL : https://stackoverflow.com/questions/49680173/is-it-possible-to-select-the-relationship-between-to-nodes-in-a-oqgraph-query

반응형