【发布时间】:2016-08-02 03:42:06
【问题描述】:
我有一个复杂的查询,我正在尝试使用OPTIONAL MATCH 语句来处理。它看起来像这样:
MATCH (p:Person {name:'Victoria'})
OPTIONAL MATCH (p)-[:MANAGES]->(:Office)<-[MERGES_INTO*0..]-(:Office)<-[:WORKS_WITH]-(target1)
OPTIONAL MATCH (p)-[:SUPPORTS]->(:Office)<-[MERGES_INTO*0..]-(:Office)<-[:WORKS_WITH]-(target2)
OPTIONAL MATCH (p)-[:ASSISTS]->(:Person)-[*0..1]->(:Group)<--(target3)
OPTIONAL MATCH (p)-->(:Group)<--(target4)
RETURN DISTINCT target1,target2,target3,target4
我想要做的是将结果作为一个名为target 的列而不是将target1、target2、target3 和target4 作为单独的列返回。
有没有办法收集/展开四个潜在的目标列以将它们作为单列结果集返回?
我知道我可以使用四个单独查询的UNION 来获得所需的结果,这些查询返回一个名为 target 的值,但我想知道是否有更好的方法。
谢谢。
【问题讨论】:
标签: neo4j cypher graph-databases