首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cypher查询-排除某些关系

Cypher查询-排除某些关系
EN

Stack Overflow用户
提问于 2022-07-07 15:49:52
回答 2查看 36关注 0票数 0

我正在查询图形中有以下节点的位置:

  • Customer
  • Account
  • Fund
  • Stock

具有以下关系:

account)

  • PURCHASED (客户有一个购买基金或股票的账户)

  • 持有(基金持有股票)

我想要实现的查询是返回所有拥有通过基金持有微软帐户的客户。以下是我的查询:

代码语言:javascript
复制
MATCH (c:Customer)-[h:HAS]->(a:Account)-[p:PURCHASED]-(f:Fund)-[holds:HOLDS]->(s:Stock {ticker: 'MSFT'})
WHERE exists((f)-[:HOLDS]->(s:Stock))
AND exists ((f:Fund)-[holds]->(s:Stock)) 
AND NOT exists((a:Account {account_type: 'Individual'})-[p:PURCHASED]->(s:Stock))
RETURN *

这几乎给我带来了预期的结果,但我一直从微软的股票中获得2种关系,这些关系与我不希望包含的个人账户有关。

任何帮助都将不胜感激!

结果:

预期结果:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-07 17:08:02

查询中存在重复。第2行和第3行是相同的。第2行是第1行的子图,然后在第1行和第4行中多次使用变量a、p和s。请告诉我它是否适合你。

代码语言:javascript
复制
MATCH (c:Customer)-[h:HAS]->(a:Account)-[p:PURCHASED]-(f:Fund)-[holds:HOLDS]->(s:Stock {ticker: 'MSFT'})
WHERE NOT exists((:Account{account_type: 'Individual'})-[:PURCHASED]->(:Stock))
RETURN *
票数 1
EN

Stack Overflow用户

发布于 2022-07-07 18:43:11

在我看来,您应该取消选中Neo4j浏览器中的"Connect结果节点“选项:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72900816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档