我有一个查询,它假设连接两个结果,并将并集作为输出。
MATCH (:Some )-[r*0..1]-> (p:Address) WITH collect(p) AS rows1
MATCH (:Some2)-[r*0..1]-> (pp:Address)
WITH rows1+collect(pp) AS rows2
UNWIND rows2 AS row RETURN row
正如您所看到的,选择有两个部分。因此,如果两个查询都有匹配的数据,那么它工作得很好,但是如果匹配的第二部分没有返回任何内容,那么它就会返回空。这意味着MATCH (:Some2)-[r*0..1]-> (pp:Address)
返回空,则整个联合失败并返回null,即使MATCH (:Some )-[r*0..1]-> (p:Address)
返回值。
如何解决这个问题?这是neo4j中的一个bug吗?
发布于 2018-06-07 16:30:11
感谢您的输入,我使用了以下版本
MATCH (p:Address)
WHERE exist ((:Some )-[r*0..1]-> (p)) OR ((:Some2 )-[r*0..1]-> (p))
RETURN p;
发布于 2018-06-05 03:33:12
这个简单的查询应该是有效的:
MATCH (s)-[*0..1]->(p:Address)
WHERE s:Some OR s:Some2
RETURN p;
https://stackoverflow.com/questions/50680297
复制相似问题