子句-OPTIONAL MATCH

Neo
Neo
2022-03-24 / 0 评论 / 62 阅读

本节内容源自Cypher官方手册V4.4版,笔者对其进行学习、翻译、记录。

简介

OPTIONAL MATCH 与 MATCH 类似。不同之处在于,如果没有找到匹配项,OPTIONAL MATCH 将使用null来表示模式的缺失部分。OPTIONAL MATCH也可以认为是在Cypher中起着类似SQL中外连接的作用

下图用于以下示例:
image.png

可选关系

如果关系是可选的,则使用 OPTIONAL MATCH 子句。这类似于 SQL 外连接的工作方式。如果关系存在,则返回。如果不存在,则在其位置返回 null 。

MATCH (a:Movie {title: 'Wall Street'})
OPTIONAL MATCH (a)-->(x)
RETURN x
<null>

可选元素的属性

从一个可选元素返回一个属性,该元素为null也将返回null。

MATCH (a:Movie {title: 'Wall Street'})
OPTIONAL MATCH (a)-->(x)
RETURN x, x.name
<null>   <null>

可选的类型和命名关系

和正常的关系一样,你可以决定它进入哪个变量,以及需要什么关系类型。

MATCH (a:Movie {title: 'Wall Street'})
OPTIONAL MATCH (a)-[r:ACTS_IN]->()
RETURN a.title, r
"Wall Street"     <null>