在Cypher中,嵌套查詢可以通過將一個(gè)查詢作為另一個(gè)查詢的輸入來實(shí)現(xiàn)。這允許您在一個(gè)查詢中引用另一個(gè)查詢的結(jié)果。以下是一個(gè)簡(jiǎn)單的示例,說明如何在Cypher中進(jìn)行嵌套查詢:
假設(shè)我們有以下兩個(gè)節(jié)點(diǎn)類型:Person和Movie,它們之間存在關(guān)系(例如,演員參演電影)。
CREATE (p:Person {name: 'Alice'})
CREATE (m:Movie {title: 'The Matrix'})
CREATE (p)-[:ACTED_IN]->(m)
現(xiàn)在,我們想要找到Alice參演的所有電影。我們可以使用嵌套查詢來實(shí)現(xiàn)這一目標(biāo):
MATCH (p:Person {name: 'Alice'})-[:ACTED_IN]->(m:Movie)
WITH m
MATCH (m)-[:DIRECTED_BY]->(d:Director)
RETURN d.name AS Director, m.title AS Movie
在這個(gè)查詢中,我們首先匹配Alice參演的所有電影(外部查詢),然后使用WITH
子句將結(jié)果傳遞給內(nèi)部查詢。內(nèi)部查詢匹配每部電影的電影導(dǎo)演,并返回導(dǎo)演的名字和電影的標(biāo)題。
嵌套查詢不僅限于兩個(gè)查詢層。您可以根據(jù)需要添加更多查詢層,以根據(jù)需要處理更復(fù)雜的關(guān)系和條件。