Neo4j-不存在的地方
今天,我正在编写一些示例查询,我偶然发现了一些东西 假设我有以下数据集: 如果我提出疑问:Neo4j-不存在的地方,neo4j,cypher,Neo4j,Cypher,今天,我正在编写一些示例查询,我偶然发现了一些东西 假设我有以下数据集: 如果我提出疑问: MATCH (c:company)-[:sells]->(p:product)<-[:taxes]-(t:tax) WHERE NOT EXISTS { MATCH (p)<-[:taxes]-(t) WHERE t.name = 'tax2' } RETURN c,p MATCH (c:company)-[:sells]->(p:product)<-[:
MATCH (c:company)-[:sells]->(p:product)<-[:taxes]-(t:tax)
WHERE NOT EXISTS {
MATCH (p)<-[:taxes]-(t)
WHERE t.name = 'tax2'
}
RETURN c,p
MATCH (c:company)-[:sells]->(p:product)<-[:taxes]-(t:tax)
WHERE NOT EXISTS {
MATCH (p)<-[:taxes]-(t2)
WHERE t2.name = 'tax2'
}
RETURN c,p,t
MATCH(c:company)-[:sells]->(p:product)由于第一个查询的外部MATCH
子句绑定了p
和t
值,因此内部MATCH
子句无法找到与p
和t
值不同的任何内容。换句话说,这个简单的查询在逻辑上是等价的:
MATCH (c:company)-[:sells]->(p:product)<-[:taxes]-(t:tax)
WHERE t.name <> 'tax2'
RETURN c,p
MATCH(c:company)-[:sells]->(p:product)由于第一个查询的外部MATCH
子句绑定了p
和t
值,因此内部MATCH
子句无法找到与p
和t
值不同的任何内容。换句话说,这个简单的查询在逻辑上是等价的:
MATCH (c:company)-[:sells]->(p:product)<-[:taxes]-(t:tax)
WHERE t.name <> 'tax2'
RETURN c,p
匹配(c:公司)-[:销售]->(p:产品)