在Neo4j中,Cypher是一種用于查詢圖形數據庫的語言
WITH
子句進行中間連接(Intermediate Joins):MATCH (a:Person {name: 'Alice'})
WITH a
MATCH (a)-[:KNOWS]->(b:Person)
RETURN a, b
在這個例子中,我們首先匹配名為"Alice"的人(Person),然后使用WITH
子句將結果傳遞給下一個MATCH
子句,該子句查找與Alice有認識關系(KNOWS)的其他人。最后,我們返回Alice和與她認識的人。
JOIN
關鍵字進行連接(Explicit Joins):MATCH (a:Person {name: 'Alice'})
JOIN (b:Person) ON a-[:KNOWS]->b
RETURN a, b
在這個例子中,我們首先匹配名為"Alice"的人(Person),然后使用JOIN
關鍵字將結果與另一個子查詢進行連接,該子查詢查找所有的人(Person)。連接條件是Alice與另一個人之間存在認識關系(KNOWS)。最后,我們返回Alice和與她認識的人。
WHERE
子句進行過濾連接(Filtered Joins):MATCH (a:Person {name: 'Alice'})
MATCH (a)-[:KNOWS]->(b:Person)
WHERE b.age > 30
RETURN a, b
在這個例子中,我們首先匹配名為"Alice"的人(Person),然后使用MATCH
子句查找與Alice有認識關系(KNOWS)的其他人。接下來,我們使用WHERE
子句過濾出年齡大于30歲的人。最后,我們返回Alice和與她認識且年齡大于30歲的人。
這些示例展示了如何在Cypher子句中進行連接查詢。您可以根據您的需求選擇合適的方法。