首页 > 解决方案 > 将 neo4j 查询链接在一起

问题描述

我有三个 neo4j 查询,我必须将它们组合并作为一个查询运行,我尝试组合但它给出了一个错误。

个别查询是:

第一的:

CREATE (r:Recommendation {companyId: 2, impactTimeFrame: "Short-Term", recommendationName: "Hello1", startTime:"Immediately" , recommendationType:"On-Off" , recommendationDetails:"Hello", probablity: "mid"})

第二:

MATCH (r: Recommendation {companyId:2, recommendationName:"Hello1" }) WITH r MATCH (p:Param { paramId:"Wellbeing" }) MERGE (r)-[re:HAS_IMPACT_ON]->(p)

第三:

MATCH (r: Recommendation { recommendationName:"Hello1", companyId: 2})WITH r (d:Demographic {companyId : 2,demographicName:"After Sales"}) MERGE (r)-[re:DEMOGRAPHIC_IMPACT_ON]->(d)

我的组合三个查询的代码:

CREATE (r:Recommendation {companyId: 2, impactTimeFrame: "Short-Term", recommendationName: "Hello1", startTime:"Immediately" , recommendationType:"On-Off" , recommendationDetails:"Hello", probablity: "mid"})WITH r 
 MATCH (r: Recommendation {companyId:2, recommendationName:"Hello1" }) WITH r MATCH (p:Param { paramId:"Wellbeing" }) WITH r,p MERGE (r)-[re:HAS_IMPACT_ON]->(p) WITH r
MATCH (r: Recommendation { recommendationName:"Hello1", companyId: 2})WITH r MATCH(d:Demographic {companyId : 2,demographicName:"After Sales"}) WITH r,d MERGE (r)-[re:DEMOGRAPHIC_IMPACT_ON]->(d)

个别查询运行良好,但结合一个给出错误,请帮助我做错了什么。

谢谢

标签: neo4jcypher

解决方案


您在第二条语句中重新使用了变量 r 但没有使用它。当您创建/匹配/合并一个节点时,您不需要继续查找它,这就是我们使用 WITH 语句来保留对它的引用的原因。

也许重写您的查询如下:

CREATE (r:Recommendation {companyId: 2, impactTimeFrame: "Short-Term", recommendationName: "Hello1", startTime:"Immediately" , recommendationType:"On-Off" , recommendationDetails:"Hello", probablity: "mid"})
WITH r 
MATCH (p:Param { paramId:"Wellbeing" }) 
MERGE (r)-[re:HAS_IMPACT_ON]->(p) 
WITH r
MATCH(d:Demographic {companyId : 2,demographicName:"After Sales"}) 
MERGE (r)-[re:DEMOGRAPHIC_IMPACT_ON]->(d)

推荐阅读