Neo4j查询需求:如何同时获取客户所属企业及客户间直接关联
解决你的Cypher查询需求
首先先帮你修正原查询里的小笔误——你要查的是Alpha和Charlie的任职企业,但原语句里误写为Delta,调整后的正确查询语句如下:
MATCH p=((a:Cust)-[r]-(b:Comp)) WHERE a.title = "Alpha" OR a.title="Charlie" RETURN a.title, extract(i IN relationships(p)| type(i)) as relation, b.title
接下来,要确认Alpha和Charlie之间是否存在直接关联(对应Neo4j图形展示里的直接连线),你可以用这条针对性的Cypher语句:
// 查询Alpha和Charlie之间的直接关系 MATCH (a:Cust {title: "Alpha"})-[r]-(c:Cust {title: "Charlie"}) RETURN a.title, type(r) AS relationship_type, c.title
如果运行后有返回结果,说明二者之间存在直接关联,relationship_type字段会显示这条关系的具体类型;如果没有返回结果,就代表他们之间没有直接的关系边。
要是你想直接在Neo4j图形界面里可视化这条关联(如果存在的话),可以用下面的语句返回完整路径:
// 返回Alpha和Charlie的直接关联路径,方便图形展示 MATCH p=(a:Cust {title: "Alpha"})-[*1]-(c:Cust {title: "Charlie"}) RETURN p
这里的[*1]表示只匹配长度为1的直接路径,确保只会找到二者之间的直接关联,不会包含间接路径。
内容的提问来源于stack exchange,提问作者Srinath Ganesh
相关产品推荐
相关产品推荐

