Neo4j查询具有不同关系的3个节点之间的连接

Neo4j查询具有不同关系的3个节点之间的连接,neo4j,cypher,Neo4j,Cypher,我有以下节点和它们之间的关系 A[name] B[language] C[Dependency] John Python ML Steven Java Tomcat Jane Scala Spark Roger DB SQL Peter Java SQL Rats Scala kafka Ro

我有以下节点和它们之间的关系

A[name]    B[language]     C[Dependency]
John       Python          ML
Steven     Java            Tomcat
Jane       Scala           Spark
Roger      DB              SQL
Peter      Java            SQL
Rats       Scala           kafka
Ronny      Cobol           Tomcat


A-[:works_on]->B
B-[:works_with]->C
A-[:knows]->C
我试图得到一张图,它只显示那些具有所有连接的节点,比如-A--B--C--A,只有不同的值,没有其他独立的连接。为此,我使用以下查询:

MATCH (A)-[:works_on]->(B)-[:works_with]->(C) WHERE A.name = 'Peter' AND B.language = 'Java' Return A,B,C
上面的查询返回额外的节点以及所需的节点(下面的Tomcat节点不是必需的)如何获得所需的图。比如——


返回匹配找到的模式:

MATCH p=(a:A)-[r:works_on]->(b:B)-[s:works_with]->(c:C)<-[t:knows]-(a:A)
WHERE a.name = 'Peter' 
AND b.language = 'Java' 
Return p

返回匹配找到的模式:

MATCH p=(a:A)-[r:works_on]->(b:B)-[s:works_with]->(c:C)<-[t:knows]-(a:A)
WHERE a.name = 'Peter' 
AND b.language = 'Java' 
Return p

输出仍然相同。。。图中只有一个连接add(C)的额外节点我添加了,但仍然是同一个图中不需要的节点。查询正在为JAVA选择所有B和C连接。我们没有在路径中分配变量!现在,它应该确保a在路径的两侧具有相同的值。两个r创建错误。。“Neo.ClientError.Statement.SyntaxError:无法对多个模式使用相同的关系变量'r'”仍然是相同的输出。。。图中只有一个连接add(C)的额外节点我添加了,但仍然是同一个图中不需要的节点。查询正在为JAVA选择所有B和C连接。我们没有在路径中分配变量!现在,它应该确保a在路径的两侧具有相同的值。两个r创建错误。。“Neo.ClientError.Statement.SyntaxError:不能对多个模式使用同一关系变量'r'”
MATCH p=(a:Person)-[r:ACTED_IN]-(b:Movie)-[s:DIRECTED]-(a:Person)
RETURN p