1

在这个查询中,我有一个:

        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 下方,我会收到错误消息。

我只是想知道,我怎么知道应该在哪里使用 WITH。

有一些黄金法则吗?

4

1 回答 1

1

WITH 子句分隔密码查询的不同管道语句。在 WITH 之后,以下部分仅对 WITH 子句中命名的变量可见。除非您在 WITH 中声明它们,否则您的 DELETE 将因此失败。

于 2012-05-21T07:55:43.747 回答