는 두 쿼리를 고려이름 지정 관계가 결과를 변경합니까?
이[1]
MATCH (p1:Person)-[ACTED_IN]->(m1:Movie), (p2:Person)-[DIRECTED]->(m1)
WHERE p1 = p2
RETURN p1.name
[2]
MATCH (p1:Person)-[xa:ACTED_IN]->(m1:Movie), (p2:Person)-[xd:DIRECTED]->(m1)
WHERE p1 = p2
RETURN p1.name
유일한 차이점은 xa:
및 xd:
, 관계 별칭이다.
결과의 차이
훨씬 크다 :- 쿼리 1 32 개 행을 갖는다. 모든 사람은 적어도 2 개의 행을 가지고 있으며, 일부는 6을 가지고 있습니다.
- 쿼리 2에는 3 개의 행이 있습니다. 모두 3 개가 다릅니다.
- 별칭 1 XOR은 다른 결과를 나타냅니다. 4 또는 10 행입니다.
왜? 집계가 없습니다. 관계 별명은 사용되지 않습니다. 쿼리가 변경되는 이유는 무엇입니까?
데이터베이스가 무료입니다. https://app.graphenedb.com/에 db 'Movie graph'가 있지만 비공개입니다.
내가 생각하기에 '- [x :] ->'은 ('모든 관계 유형 AS x'에 대해) 유효하지 않은 구문입니다. '모든 관계'에 별명을 지정할 수 있습니까? – Rudie
'- [x :] ->'는':'변수 유형의 앞에 접두사가 있어야하기 때문에 유효하지 않습니다. '- [: x] ->는 'x'유형과 별칭이없는 관계입니다. '- [x] ->'는 타입을 가지지 않으며, 어떤 타입의 관계와도 매치되어 그것들을 'x'의 별칭에 묶을 것입니다. – InverseFalcon
아, 그게 작동하는 방법입니다! 어디서나 구문에 대한 도움말을 찾을 수 없습니다. 'graphdb'또는 'neo4j'또는 'cypher'입니까? – Rudie