我是Neo4j新手,我需要查询一个匹配图或任何子图,如下所示:
所以我尝试了可选匹配,但我意识到它不会给我提供所需的结果。这是我之前尝试过的查询。
OPTIONAL MATCH (w:W)-[:WRITES]->(a1:A{name:"A1"})
WITH w,a1
OPTIONAL MATCH (w)-[:WRITES]->(a2:A{name:"A2"})
WITH w,a1,a2
OPTIONAL MATCH (w)-[:WRITES]->(a3:A{name:"A3"})
WITH w,a1,a2,a3
OPTIONAL MATCH (w)-[:WRITES]->(a4:A{name:"A4"})
RETURN w,a1,a2,a3,a4
尽管它是一个可选的匹配,但它仍然是一个逻辑AND匹配与外部连接(在SQL上下文中)
在我的例子中,我在每个匹配中都需要OR和and结果,这意味着它应该匹配上面解释的图的任何子图。
因此,我需要获取结果,如下所示。
MATCH (w:W)-[:WRITES]->(a1:A{name:"A1"})
OR/AND
MATCH (w)-[:WRITES]->(a2:A{name:"A2"})
OR/AND
MATCH (w)-[:WRITES]->(a3:A{name:"A3"})
OR/AND
MATCH (w)-[:WRITES]->(a4:A{name:"A4"})
RETURN w,a1,a2,a3,a4
有没有可能通过Neo4j密码查询来达到我的要求?
我的结果集应该是这样的。
W, A1, A2, A3, A4
{name:w1,....}, {name:A1,....}, {name:A2,....}, {name:A3,....}, {name:A4,....}
{name:w1,....}, null, {name:A2,....}, null, {name:A4,....}
{name:w1,....}, null, null, null, {name:A4,....}
{name:w1,....}, {name:A1,....}, {name:A2,....}, null, null
{name:w1,....}, {name:A1,....}, null, {name:A3,....}, {name:A4,....}
https://stackoverflow.com/questions/51852533
复制相似问题