Neo4j - 为不存在的关系包含 Null 值
Neo4j - Include Null values for relationships that dont exist
我有一个非关系数据库并使用 Neo4j 密码进行查询。
我已经多次看到这个问题,但我似乎无法让它为我的查询工作。
基本上,我 return 从数据库中获取特定类型的所有节点。
节点类型称为 Person。
由此,我从关系 MARRIED_TO 中找到与原始人相关的节点。
并非所有原始节点都具有 MARRIED_TO 关系。
对于这些我想 return null。
我试过使用 OPTIONAL MATCH,但这似乎也不起作用。
OPTIONAL MATCH (p:Person)-[m:MARRIED_TO]-(p2:Person)
Return p.name as Name, p2.name as Spouse
ORDER By Name, Spouse
这return是原始有关系的节点,不是没有对应MARRIED_TO关系的节点。
下面只有 returns 两个空列
OPTIONAL MATCH (p:Person)-[m:MARRIED_TO]-(p2:Person)
WHERE (m) is null
Return p.name as Name, p2.name as Spouse
ORDER By Name, Spouse
感谢您提供的任何帮助。
MATCH (p:Person)
WITH p
OPTIONAL MATCH (p)-[:MARRIED_TO]-(p2)
RETURN p.name, p2.name
这个returns
╒═══════════╤═════════╕
│"p.name" │"p2.name"│
╞═══════════╪═════════╡
│"Anna" │"Ben" │
├───────────┼─────────┤
│"Ben" │"Anna" │
├───────────┼─────────┤
│"Catherine" │null │
└───────────┴─────────┘
诀窍是匹配你想要匹配的所有节点return(在本例中为所有 Person 节点),然后可选地匹配他们的配偶。
我有一个非关系数据库并使用 Neo4j 密码进行查询。 我已经多次看到这个问题,但我似乎无法让它为我的查询工作。 基本上,我 return 从数据库中获取特定类型的所有节点。 节点类型称为 Person。 由此,我从关系 MARRIED_TO 中找到与原始人相关的节点。 并非所有原始节点都具有 MARRIED_TO 关系。 对于这些我想 return null。 我试过使用 OPTIONAL MATCH,但这似乎也不起作用。
OPTIONAL MATCH (p:Person)-[m:MARRIED_TO]-(p2:Person)
Return p.name as Name, p2.name as Spouse
ORDER By Name, Spouse
这return是原始有关系的节点,不是没有对应MARRIED_TO关系的节点。
下面只有 returns 两个空列
OPTIONAL MATCH (p:Person)-[m:MARRIED_TO]-(p2:Person)
WHERE (m) is null
Return p.name as Name, p2.name as Spouse
ORDER By Name, Spouse
感谢您提供的任何帮助。
MATCH (p:Person)
WITH p
OPTIONAL MATCH (p)-[:MARRIED_TO]-(p2)
RETURN p.name, p2.name
这个returns
╒═══════════╤═════════╕
│"p.name" │"p2.name"│
╞═══════════╪═════════╡
│"Anna" │"Ben" │
├───────────┼─────────┤
│"Ben" │"Anna" │
├───────────┼─────────┤
│"Catherine" │null │
└───────────┴─────────┘
诀窍是匹配你想要匹配的所有节点return(在本例中为所有 Person 节点),然后可选地匹配他们的配偶。