2016-08-30 8 views
0

2番目の問合せでは、顧客キーのリストが表示されます。私は、そのリストにあるキーと顧客を一致させたい場合に限り、その結果を第1のクエリで使用したいと考えています。 SQLにはIN演算子があります。 Cypherではどうですか?Cypher "IN"演算子

+0

'ORDERED_BY'と' CUSTOMER'関係が見えます。それらは常に同じ「販売」ノードと「顧客」ノードの間に一緒に存在しますか? – cybersam

答えて

1

リストに作用するIN演算子があり、行をリストに変更するCOLLECT()コマンドがあります。

つまり、私はあなたがこのステップを全く行う必要はないと言いました。あなたは、2つのクエリを結合することができ、ちょうどそのように最初のクエリに供給するために、第2のクエリの結果の顧客を使用する必要があります:彼らは冗長かもしれないよう

MATCH (s:Sale)-[:CUSTOMER]->(c:Customer) 
WITH SUM(s.orderQuantity) as qtt, c 
WHERE qtt>1 
// now pass the filtered list of customers to the first query 
// no need to do any additional filtering or even deal with customerKey 
WITH c 
MATCH (s:Sale)-[:ORDERED_BY]->(c) 
RETURN c.name, SUM(s.orderQuantity)