我有节点标有' Group'只有一些人与人有关系。 Ť
GroupA {}, GroupB{personA, personB}, GroupC{}
我希望获得分配给他们的所有团体和成员,但我只能想办法让团体成员
Match (:Client {value:'1234'})-[:IDENTIFIES]->(a)<-[r:PART_OF*]-(b:Group)
<-[:BELONGS_TO]-(per:Person)
即使我与UNION单独进行比赛,我也无法同时获得空组和成员组。它说列名必须相同。我可能做错了什么。
任何帮助?谢谢!
答案 0 :(得分:1)
MATCH (c:Client {value: 1234})-[:IDENTIFIES]->(a)<-[r:PART_OF*]-(b:Group)<-[:BELONGS_TO]- (per:Person), (g:Group)
RETURN per, b, g
这假设您在显示的组方面可以复制结果。它还取决于您希望如何返回/显示结果(例如,您可能想要使用COLLECT)。当每行包含所有组时,迭代“成员”结果可能有点尴尬。
如果您只想要空组,可以尝试以下方法:
MATCH (g:Group)
WHERE NOT g--()
RETURN g
答案 1 :(得分:1)
此查询应该执行您想要的操作。如果per
组没有属于null
,则结果行中的b
值将为Person
。您可以使用此查询using this console link。
MATCH (:Client {value:'1234'})-[:IDENTIFIES]->(a)<-[r:PART_OF*]-(b:Group)
OPTIONAL MATCH (b)<-[:BELONGS_TO]-(per:Person)
RETURN DISTINCT a, b, per;