首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻找母亲没有兄弟姐妹而父亲有兄弟姐妹的人

寻找母亲没有兄弟姐妹而父亲有兄弟姐妹的人
EN

Stack Overflow用户
提问于 2021-12-09 19:52:42
回答 1查看 46关注 0票数 0

我的查询有个奇怪的问题。如果我写这样的东西:

代码语言:javascript
复制
MATCH (parentOfMother: Person_kol)-->(mother: Person_kol)-[:MOTHER]->(p: Person_kol)<-[:FATHER]-(father: Person_kol)<--(parentOfFather)-->(:Person_kol) WHERE NOT (:Person_kol)<--(parentOfMother)-->(mother)
RETURN distinct(p.idPerson)

它给了我一个人,他母亲的母亲除了他的母亲没有任何孩子,但人的母亲的父亲有很多孩子。

如果我这样写这个查询,它就能正常工作:

代码语言:javascript
复制
MATCH (mother: Person_kol)-[:MOTHER]->(p: Person_kol)<-[:FATHER]-(father: Person_kol)<--(parentOfFather)-->(:Person_kol) WHERE NOT (mother: Person_kol)<--()-->()
RETURN distinct(p.idPerson)

为什么会这样呢?我看不出查询有什么特别的区别。

EN

回答 1

Stack Overflow用户

发布于 2021-12-10 12:46:55

我认为这与以下事实有关:在第一个查询中,某些节点在路径/谓词组合中被重新访问。

我将按以下方式编写您的查询

代码语言:javascript
复制
MATCH (p:Person_kol)
WHERE NOT EXISTS((p)<-[:MOTHER]-()<-[:FATHER|MOTHER]-()-[:FATHER|MOTHER]->())
      AND
      EXISTS( (p)<-[:FATHER]-()<-[:FATHER|MOTHER]-()-[:FATHER|MOTHER]->())
RETURN p
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70295914

复制
相关文章

相似问题

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