6

Neo4j で WITH 句が何をするのかわかりません。The Neo4j Manual v2.2.2を読みましたが、WITH 句についてはよくわかりません。多くの例はありません。たとえば、青色のノードがサッカー チームで、黄色のノードがスタジアムである次のグラフがあります。 ここに画像の説明を入力

2 つ以上のチームがプレーするスタジアムを見つけたいです。私はそのクエリを見つけましたが、それは機能します。

match (n:Team) -[r1:PLAYS]->(a:Stadium)
with a, count(*) as foaf
where foaf > 1
return a

count(*) は、一致する行の数を示します。しかし、WITH 句の機能がわかりません。

4

1 に答える 1

15

WITHクエリのある部分から次の部分にデータを渡すことができます。WITH にリストするものはすべて、次のクエリ部分で使用できます。

集約、SKIP、LIMIT、ORDER BY を、RETURN と同様に WITH とともに使用できます。AS alias唯一の違いは、後のクエリ部分で式にアクセスできるようにするために、式でエイリアスを取得する必要があることです。

つまり、あるデータを計算し、次のクエリ パーツがその計算されたデータを使用できるクエリ パーツを連鎖させることができます。あなたの場合、それはGROUP BY and HAVINGSQLの場合ですが、WITHはそれよりもはるかに強力です。

ここに別の例があります

match (n:Team) -[r1:PLAYS]->(a:Stadium)
with distinct a 
order by a.name limit 10
match (a)-[:IN_CITY]->(c:City)
return c.name
于 2015-06-07T23:30:59.450 に答える