在Cypher中,你可以使用WITH
子句进行嵌套查询。WITH
子句允许你在查询的不同阶段对数据进行转换和筛选。以下是一个简单的示例,展示了如何在Cypher中进行嵌套查询:
假设我们有一个名为Person
的节点类型,其中包含name
和age
属性。我们想要查询年龄大于30岁且名字以字母"A"开头的所有人。
MATCH (p:Person)
WITH p
WHERE p.age > 30 AND p.name STARTS WITH 'A'
RETURN p
在这个查询中,我们首先使用MATCH
子句匹配所有的Person
节点。然后,我们使用WITH
子句将结果传递给下一个阶段,即WHERE
子句。在WHERE
子句中,我们对每个节点应用筛选条件,即年龄大于30岁且名字以字母"A"开头。最后,我们使用RETURN
子句返回满足条件的节点。
如果你需要执行更复杂的嵌套查询,可以使用多个WITH
子句。例如,假设我们想要查询年龄大于30岁且名字以字母"A"开头的所有人,然后返回他们的年龄和名字。
MATCH (p:Person)
WITH p
WHERE p.age > 30 AND p.name STARTS WITH 'A'
WITH p.age AS age, p.name AS name
RETURN age, name
在这个查询中,我们在第一个WITH
子句中筛选出满足条件的节点,然后在第二个WITH
子句中提取我们感兴趣的字段(年龄和名字)。最后,我们返回这些字段作为查询结果。