我希望使用UNION(n)的结果作为后续匹配的过滤器。
MATCH (n:Thing)-<<Insert valid match filters here>>
RETURN n
UNION
MATCH (n:Thing)-<<Insert a different set of match filters here>>
RETURN n;
n提供:
MATCH (n)-[:RELTYPE1]->(a:Artifact);
RETURN a;
我希望使用WITH语句,但我很难弄清楚语句的结构。
MATCH (n:Thing)-<<Insert valid match filters here>>
RETURN n
UNION
MATCH (n:Thing)-<<Insert a different set of match filters here>>
WITH n
MATCH (n)-[:RELTYPE1]->(a:Artifact);
RETURN a;
这是我最初的尝试,但是WITH被解释为UNION第二场比赛的子查询的开始(这是有意义的)。
我可以看到一些不太优雅的方法来完成这项工作,但正确的方法是什么?
答案 0 :(得分:1)
我一直在看你的工会例子,这对我来说很有意义,但我看不出我怎么能让它发挥作用。但我肯定不是那些得到所有答案的人。有没有理由你不能做这样的事情......
MATCH (n:Thing) where n.name = 'A'
with collect(n) as n1
MATCH (n:Thing) where n.name = 'B'
with collect(n) as n2, n1
with n1 + n2 as both
unwind both as n
MATCH (n)-[:RELTYPE1]->(a:Artifact);
RETURN a;