3.3.2 OPTIONAL MATCH語句
OPTIONAL MATCH語句用于搜索模式中描述的匹配項,對找不到的項用null代替。
3.3.2.1 簡介
OPTINAL MATCH匹配模式與MATCH類似。不同之處在于,如果沒有匹配到,OPTINAL MATCH將用null作為未匹配到部分的值。OPTINAL MATCH在Cypher中類似于SQL語句中的outer join。
記住,WHERE是模式描述的一部分,匹配的時候就會考慮到WHERE語句中的斷言,而不是匹配之后才考慮。這對于有多個OPTINAL MATCH語句的查詢尤其重要,一定要將屬于MATCH的WHERE語句與MATCH放在一起。
OPTINAL MATCH圖例如圖3-6所示。

圖3-6 OPTINAL MATCH圖例
3.3.2.2 可選關系
如果某個關系是可選的,可使用OPTINAL MATCH。這非常類似SQL中outer join的工作方式。如果關系存在就返回,否則在相應的地方返回null。
查詢:

結果返回了null,因為這個節點沒有外向關系。
結果:

3.3.2.3 可選元素的屬性
如果可選的元素為null,那么該元素的屬性也返回null。
查詢:

返回了x元素(查詢中為null),它的name屬性也為null。
結果:

3.3.2.4 可選關系類型
可在查詢中指定可選的關系類型。
查詢:

結果返回了null關系,因為該節點沒有ACTS_IN的外向關系。
結果:

推薦閱讀