下面的密码查询在最后一行失败,因为p2
只在EXISTS
之后的作用域中定义,但是有没有办法以某种方式将其带出该作用域(例如,将其设置为全局变量)并返回它?
MATCH (p:Person)
WHERE EXISTS {
MATCH (p{name: 'José'})<-[:CHILD_OF]-(p2:Person)
WHERE p2.name IN ['Roberto', 'Gustavo']
}
RETURN (p), (p2) // fails
**P.S.:**我知道最简单的解决方案是从一开始就不使用作用域,我的问题是我所寻找的功能是否存在。
3条答案
按热度按时间mzaanser1#
EXISTS
中使用的现有查询无法返回值。如果要对子查询的结果进行后期处理,则需要使用CALL
。看起来您要尝试:CALL中的WITH使外部查询中的p可用于内部查询。
luaexgnf2#
我会这样做:
qij5mzcb3#
您可以删除where exists子句,并直接对Jose及其父母执行查询。