You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Memgraph时间树Cypher查询问题:单独正常合并后返回空集

问题原因与解决方法

核心原因

你合并后的查询使用了重复的变量名(y、m、d、h),在Cypher语法规则中,同一变量名在多条MATCH语句中代表必须匹配同一个节点。

比如第一个MATCH里h绑定的是hour:7的HOUR节点,第二个MATCH又要求h是hour:6的HOUR节点——单个节点不可能同时拥有hour:7和hour:6两个冲突属性,因此查询无法找到符合条件的结果,返回空集。

解决方法

只需给不同路径中的重复变量重命名,让它们各自绑定对应的节点即可:

MATCH (y:YEAR {year:2015})-[:HAS_MONTH]->(m:MONTH {month:1})-[:HAS_DAY]->(d:DAY {day:22})-[:HAS_HOUR]->(h7:HOUR {hour:7})-[:HAS_MINUTE]->(min2: MINUTE {minute: 0})
MATCH (y:YEAR {year:2015})-[:HAS_MONTH]->(m:MONTH {month:1})-[:HAS_DAY]->(d:DAY {day:22})-[:HAS_HOUR]->(h6:HOUR {hour:6})-[:HAS_MINUTE]->(min1: MINUTE {minute: 50})
RETURN min1, min2;

或者也可以将两个独立路径合并到同一条MATCH中,用逗号分隔,此时即使变量名重复也不会冲突(因为是两个独立的匹配分支):

MATCH 
  (y:YEAR {year:2015})-[:HAS_MONTH]->(m:MONTH {month:1})-[:HAS_DAY]->(d:DAY {day:22})-[:HAS_HOUR]->(h:HOUR {hour:7})-[:HAS_MINUTE]->(min2: MINUTE {minute: 0}),
  (y2:YEAR {year:2015})-[:HAS_MONTH]->(m2:MONTH {month:1})-[:HAS_DAY]->(d2:DAY {day:22})-[:HAS_HOUR]->(h2:HOUR {hour:6})-[:HAS_MINUTE]->(min1: MINUTE {minute: 50})
RETURN min1, min2;

内容的提问来源于stack exchange,提问作者KWriter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 02:41:58