Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j Cypher查询语言中的子查询_Neo4j_Subquery - Fatal编程技术网

Neo4j Cypher查询语言中的子查询

Neo4j Cypher查询语言中的子查询,neo4j,subquery,Neo4j,Subquery,我想为我正在进行的项目写一个创建关系语句。声明必须是这样的 CREATE (match (p:Halt) where p.name="Ananda College" return p)-[:next_halt {route:['103'],dist:1.45}]->(MATCH (p:Halt) where p.name="Borella" return p) 如您所见,我希望开始节点和结束节点的值来自另一个CQL语句。 但是当我运行这个查询时,似乎出现了语法错误。我已经阅读了一些教程,

我想为我正在进行的项目写一个创建关系语句。声明必须是这样的

CREATE (match (p:Halt) where p.name="Ananda College" return p)-[:next_halt {route:['103'],dist:1.45}]->(MATCH (p:Halt) where p.name="Borella" return p)
如您所见,我希望开始节点和结束节点的值来自另一个CQL语句。 但是当我运行这个查询时,似乎出现了语法错误。我已经阅读了一些教程,看看我的问题出在哪里,但作为一个初学者,我真的说不出来

Invalid input '(': expected whitespace, comment, node labels, MapLiteral, a parameter, ')' or a relationship pattern (line 1, column 15 (offset: 14))
"CREATE (match (p:Halt) where p.name="Ananda College" return p)-[:next_halt {route:['103'],dist:1.45}]->(MATCH (p:Halt) where p.name="Borella" return p)"

你的语法在这里很混乱。请重新阅读dev文档,也许可以查看Cypher备忘单

至于正确的语法,你甚至不需要嵌套来得到你想要的。首先,在开始和结束节点上进行匹配,然后可以在查询的其他部分使用绑定变量,例如创建关系:

MATCH (start:Halt), (stop:Halt) 
WHERE start.name = "Ananda College" AND stop.name="Borella"
CREATE (start)-[:next_halt {route:['103'], dist:1.45}]->(stop)

如果您不确定节点(或关系)是否存在,可以改用MERGE,它将在现有节点(或关系)上匹配,或者在不存在的情况下创建它们。

我不确定您是从哪里找到该语法的,但您可以在Cypher上找到广泛的入门知识。