neo4j cypher WITH - 如果在第二个查询中没有匹配,则从第一个查询返回数据?

时间:2014-12-19 02:08:19

标签: neo4j cypher

我有一个类似于以下内容的密码查询:

MATCH (a)-[]->(b)
WHERE (condition #1)
WITH a, b
MATCH (a)-[]->(c)
WHERE (condition #2)
RETURN a, b, c

我的数据是这样的,查询的第一部分将自己返回“a”和“b”。但是,如果第二个WHERE条件失败,则查询不返回任何数据。我期望“a”和“b”的数据为“c”为NULL我怎么能这样做?

感谢。

1 个答案:

答案 0 :(得分:6)

在第二场比赛之前添加OPTIONAL可以解决问题。

MATCH (a)-[]->(b)
WHERE (condition #1)
WITH a, b
OPTIONAL MATCH (a)-[]->(c)
WHERE (condition #2)
RETURN a, b, c