Neo4j 密码匹配查询中变量的作用
我正在学习Cypher和Neo4j,并试图了解Cypher是如何处理“变量”的 具体来说,我有一个疑问Neo4j 密码匹配查询中变量的作用,neo4j,cypher,Neo4j,Cypher,我正在学习Cypher和Neo4j,并试图了解Cypher是如何处理“变量”的 具体来说,我有一个疑问 match (A {name: "A"}) match (A)<-[:st*]-(C)-[:hp]->(c) match (A)<-[:st*]-(B)-[:hp]->(b) match (c)-[:st]->(b) return b 尝试在(c)的任何节点和(b)的任何节点之间查找匹配项,而 尝试从(b)的特定节点到自身查找匹配项?还是说我们必须把3个匹配从句
match (A {name: "A"})
match (A)<-[:st*]-(C)-[:hp]->(c)
match (A)<-[:st*]-(B)-[:hp]->(b)
match (c)-[:st]->(b)
return b
尝试在(c)的任何节点和(b)的任何节点之间查找匹配项,而
尝试从(b)的特定节点到自身查找匹配项?还是说我们必须把3个匹配从句看作一个整体模式
当您编写2个
匹配
语句时,Thanx用于深入了解内部工作…
match (A)<-[:st*]-(C)-[:hp]->(c)
match (A)<-[:st*]-(B)-[:hp]->(b)
而对于单个中间匹配
和使用b
两次的最终匹配
,它只能看到:
1 2
1 (1, 1)
2 (2, 2)
1 2
1 (1, 1)
2 (2, 2)
如果你没有自我关系的话,哪一对不是有趣的
请注意,在SQL数据库中,如果在两个没有联接的表上执行
SELECT
,情况也是一样的:在编写2个MATCH
语句时,也会得到无关结果的笛卡尔积
match (A)<-[:st*]-(C)-[:hp]->(c)
match (A)<-[:st*]-(B)-[:hp]->(b)
而对于单个中间匹配
和使用b
两次的最终匹配
,它只能看到:
1 2
1 (1, 1)
2 (2, 2)
1 2
1 (1, 1)
2 (2, 2)
如果你没有自我关系的话,哪一对不是有趣的
请注意,在SQL数据库中,如果在两个没有联接的表上执行SELECT
,情况也是一样的:也会得到不相关结果的笛卡尔积
1 2
1 (1, 1) (1, 2)
2 (2, 1) (2, 2)
1 2
1 (1, 1)
2 (2, 2)