2012-05-21 56 views
1

在此查詢我有一個:何處使用WITH?

 START root = node(*) 
     MATCH root-[:HAS_DEPARTMENTS]->()<-[:IS_DEPARTMENT]-department-[relationship1:HAS_CATEGORY_SUGGESTION]->categorySuggestion-[relationship2:IS_CATEGORY_SUGGESTION]->()<-[:HAS_CATEGORY_SUGGESTIONS]-root 
     WHERE root.name = "Store" and department.name = "foo" and categorySuggestion.name = "bar" 
     DELETE relationship1, relationship2 

     WITH root, department, categorySuggestion 
     MATCH root-[:HAS_CATEGORIES]->categories 
     CREATE department-[:HAS_CATEGORY]->categorySuggestion 
     CREATE categories<-[:IS_CATEGORY]-categorySuggestion 

我有一個WITH子句分開兩個部分。

如果我將下面的DELETE移動到WITH,我會得到一個錯誤。

我只是想知道,我怎麼知道我應該在哪裏使用。

是否有一些黃金法則?

回答

1

WITH子句分隔密碼查詢的不同管道語句。在WITH後面,以下部分只能看到WITH子句中指定的變量。除非你在WITH中聲明它們,否則你的DELETE將失敗。