多个匹配语句的问题,导致没有有效模式的行
Issue with multiple match statements, results no rows for valid patterns
我正在尝试使用代理在 Neo4j 中创建一个图表 "KNOWS"
关系。
Match (a:AGENT {name:'a'})
Match (e:AGENT {name:'e'})
Match d1 = (a) -[r1:KNOWS]-> (e)
Match d2 = (a) -[r1:KNOWS]-> (x) -[r2:KNOWS]-> (e)
Return d2
鉴于:
d1 运行 独立 returns 没有行。
d2 运行 独立 returns 有效结果
当我 运行 上面的代码(同时包含两个语句)时,结果是没有行。为什么 d2 受到 d1 的影响导致没有行?
我是 cypher 和 neo4j 的新手,请帮忙。
下面是在官方neo4j控制台设置的数据库:
http://console.neo4j.org/r/617mrr
你可以这样试试
MATCH d2=(a:AGENT { name:'a' })-[r1:KNOWS]->(x)-[r2:KNOWS]->(e:AGENT { name:'e' })
optional match d1 = (a) -[r:KNOWS]-> (e)
RETURN d2
这是您需要的吗?
d1
returns 没有数据,因为没有从 a
到 e
的单跳路径。由于 none 的匹配项是可选的,因此您不会为整个查询返回任何数据。
这将使 d1 找到匹配项。
match (a:AGENT {name:'a'})
, (e:AGENT {name:'e'})
, d1 = (a) -[r1:KNOWS*..2]-> (e)
return d1
这是您的原始数据,对 return 数据稍作修改。
match (a:AGENT {name:'a'}), (e:AGENT {name:'e'})
, d2 = (a) -[r1:KNOWS]-> (x) -[r2:KNOWS]-> (e)
optional match d1 = (a) -[r1:KNOWS]-> (e)
return d2
我正在尝试使用代理在 Neo4j 中创建一个图表 "KNOWS" 关系。
Match (a:AGENT {name:'a'})
Match (e:AGENT {name:'e'})
Match d1 = (a) -[r1:KNOWS]-> (e)
Match d2 = (a) -[r1:KNOWS]-> (x) -[r2:KNOWS]-> (e)
Return d2
鉴于: d1 运行 独立 returns 没有行。 d2 运行 独立 returns 有效结果
当我 运行 上面的代码(同时包含两个语句)时,结果是没有行。为什么 d2 受到 d1 的影响导致没有行?
我是 cypher 和 neo4j 的新手,请帮忙。
下面是在官方neo4j控制台设置的数据库: http://console.neo4j.org/r/617mrr
你可以这样试试
MATCH d2=(a:AGENT { name:'a' })-[r1:KNOWS]->(x)-[r2:KNOWS]->(e:AGENT { name:'e' })
optional match d1 = (a) -[r:KNOWS]-> (e)
RETURN d2
这是您需要的吗?
d1
returns 没有数据,因为没有从 a
到 e
的单跳路径。由于 none 的匹配项是可选的,因此您不会为整个查询返回任何数据。
这将使 d1 找到匹配项。
match (a:AGENT {name:'a'})
, (e:AGENT {name:'e'})
, d1 = (a) -[r1:KNOWS*..2]-> (e)
return d1
这是您的原始数据,对 return 数据稍作修改。
match (a:AGENT {name:'a'}), (e:AGENT {name:'e'})
, d2 = (a) -[r1:KNOWS]-> (x) -[r2:KNOWS]-> (e)
optional match d1 = (a) -[r1:KNOWS]-> (e)
return d2