neo4j - Neo4j 中的左连接似乎不起作用

标签 neo4j cypher

这是我的图表 enter image description here

我正在尝试进行一个查询,告诉我是否存在从 T 类型的节点到 M 类型的节点的连接。我听说OPTIONAL MATCH相当于SQL Left Join,但它不包括缺失的链接。

这是我的尝试:

START t=node(241)
OPTIONAL MATCH t-[r:R]->(m)
RETURN m.name, r is not  NULL

结果只有节点M1M2M3enter image description here

我还想包括行M4 |结果中为 false

如果我稍微修改一下查询

START t=node(241), m=node(246,247, 248, 249)
OPTIONAL MATCH t-[r:R]->(m)
RETURN m.name, r is not  NULL

这样我就可以得到想要的结果,但这需要我提前知道所有M个节点的id。

最佳答案

我感觉有点垃圾,因为我在发布此内容后立即找到了答案。

我所需要的只是一个额外的匹配来获取所有 M 个节点。

START t=node(241)
MATCH (m:M)
OPTIONAL MATCH t-[r:R]->(m)
RETURN m.name, r is not  NULL

关于neo4j - Neo4j 中的左连接似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30780048/

相关文章:

java - 将新几何图形添加到 Neo4J 中的 osm 文件

java - 如何使用自定义非托管扩展针对 Neo4j 运行测试?

neo4j - Neo4j Cypher中有多个不相关的查询?

Neo4j:为具有相同属性的节点创建索引

database - 如何在 Neo4j 中删除/创建数据库?

python - 如何在 python 中对 Neo4j 进行单元测试?

neo4j - 我可以在neo4j中找到两个节点之间的所有关系吗?

neo4j - Cypher:如何匹配路径中的关系节点关系

Neo4j 密码 : Find exact match to array Node property in WHERE clause

Neo4J 返回带有空格的列别名 (AS) 名称,这可能吗?