2012-05-22 3 views
0

다음과 같은 그래프가 있습니다. (2) < - [0 : CHILD] - (1) - [1 : CHILD] -> (3) 단어 : Node 1,2,3 모두 이름 포함); 가장자리 0사이퍼 출력 이해

나는 다음과 사이퍼 쿼리 쓰기 1 :

START nodes = node(1,2,3), relationship = relationship(0,1) 
RETURN nodes, relationship 

을 그 결과로 가지고 :

==> +-----------------------------------------------+ 
==> | nodes       | relationship | 
==> +-----------------------------------------------+ 
==> | Node[1]{name->"Risikogruppe2"} | :CHILD[0] {} | 
==> | Node[1]{name->"Risikogruppe2"} | :CHILD[1] {} | 
==> | Node[2]{name->"Beruf 1"}  | :CHILD[0] {} | 
==> | Node[2]{name->"Beruf 1"}  | :CHILD[1] {} | 
==> | Node[3]{name->"Beruf 2"}  | :CHILD[0] {} | 
==> | Node[3]{name->"Beruf 2"}  | :CHILD[1] {} | 
==> +-----------------------------------------------+ 
==> 6 rows, 0 ms 

지금 내 질문 : 나는 두 번 모든 노드가 된 이유 및 관계 세 시각? 나는 그저 한 번만하고 싶다.

감사합니다. ^^

+0

두 시작 세트는 쿼리에 대한 입력 값의 교차 곱을 형성합니다. –

답변

0

일치하는 경우가 아니면 노드와 관계 만 한 번 표시해야합니다.

문제를 재현하려고 시도했지만 시도 할 수 없었습니다.

http://tinyurl.com/cobd8oq

는 당신이 문제의 console.neo4j.org 예를 만들 수 있습니까?

감사합니다,

안드레스

+0

오, 내 잘못이야. 거짓 쿼리를 해. http://tinyurl.com/bpunlnh는 올바른 쿼리를 보여줍니다. 하지만 내 질문은 여전히 ​​거기에있다. 왜 노드 2와 노드 3의 관계가 모두 이것에 연결되어 있습니까? 좋아요,하지만 일치하지 않는데 왜 테이블이 2 개의 관계가 아닌 오른쪽 행에 표시됩니까? – hilbert

+1

유스 케이스 란 무엇입니까? 일치하지 않는 것처럼 보입니다. 많은 의미없이 노드와 관계의 교차 생성물을 얻는 것입니다. – Luanne

+0

START 노드 = 노드 (1,2,3) 일치 (노드) - [r : 자식] - (x) 반환 노드, r은 당신에게 모든 노드와 관계를 줄 것이다. – Luanne

1

사이퍼가 작동하는 방법은 SQL과 매우 유사합니다. START 절에서 변수를 만들면 일종의 SQL (테이블)에 from nodes, relationships이 수행됩니다. 당신이 그들을 필터링 match 또는 where 어떤 종류의 일을하지 않는 때문에이 두 가지의 가능한 모든 값의 카티 제품을 얻고있는 이유는, 그래서 그것은 기본적이다 좋아 :

select * 
from nodes, relationships 

어디를 테이블 사이의 외래 키 관계를 잊어 버렸습니다.

start n=node(1,2,3), r=relationship(0,1) 
match n-[r]-m // find where the n nodes and the r relationships point (to m) 
return * 

을하지만 일치가 없기 때문에, 당신은 카티 제품을 얻을 : 사이퍼에서

, 일반적으로, 일치를 수행하여이 작업을 수행.