在哪里使用WITH?

时间:2012-05-21 01:57:23

标签: neo4j

在这个查询中我有一个:

        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 个答案:

答案 0 :(得分:1)

WITH子句分隔cypher查询的不同管道语句。在WITH之后,以下部分仅具有WITH子句中指定的变量的可见性。除非您在WITH中说明它们,否则您的DELETE将失败。