SyntaxError: WITH требуется между CREATE и MATCH - PullRequest
0 голосов
/ 07 апреля 2019

Я очень новичок в запросе Сайфера.Итак, я пытаюсь понять МАТЧ и СОЗДАТЬ.Вот что я сейчас определяю отношения между автором и книгой:

MATCH (book1:Book1 {title: 'The Ones Who Walk Away From Omelas'})
MATCH (author1:Author1 {name: 'Ursula K. Le Guin'})
CREATE (author1) - [:IS_AUTHOR_OF] -> (book1)

MATCH (book2:Book2 {title: 'A Fire Upon the Deep'})
MATCH (author2:Author2 {name: 'Vernor Vinge'})
CREATE (author2) - [:IS_AUTHOR_OF] -> (book2)

Но это выдает мне ошибку:

SyntaxError: WITH требуется между CREATE и MATCH

Я просмотрел это сообщение , но все еще не смог решить эту проблему.

Вот что я пробовал и все еще получаю ту же ошибку:

MATCH (author1:Author1 {name: 'Ursula K. Le Guin'})
MATCH (book1:Book1 {title: 'The Ones Who Walk Away From Omelas'})
WITH author1, book1
CREATE (author1) - [:IS_AUTHOR_OF] -> (book1)

MATCH (author2:Author2 {name: 'Vernor Vinge'})
MATCH (book2:Book2 {title: 'A Fire Upon the Deep'})
WITH author2, book2
CREATE (author2) - [:IS_AUTHOR_OF] -> (book2)

1 Ответ

1 голос
/ 07 апреля 2019

Синтаксическая ошибка: WITH требуется между CREATE и MATCH.

WITH должно быть между CREATE третьей строки и MATCH пятой (четвертой?) Строки.

WITH необходим для цепочки, передачи результатов от одной части запроса к следующей. Если это вас смущает, не волнуйтесь. Вы можете прочитать больше здесь .

Поскольку вы не передаете никаких результатов из первой части во вторую, вам это не нужно, но это синтаксически неверно.

Вы можете добавить WITH в свой запрос, как показано ниже, чтобы устранить ошибку.

MATCH (book1:Book1 {title: 'The Ones Who Walk Away From Omelas'})
MATCH (author1:Author1 {name: 'Ursula K. Le Guin'})
CREATE (author1) - [:IS_AUTHOR_OF] -> (book1)
WITH true as pass
MATCH (book2:Book2 {title: 'A Fire Upon the Deep'})
MATCH (author2:Author2 {name: 'Vernor Vinge'})
CREATE (author2) - [:IS_AUTHOR_OF] -> (book2)

В качестве альтернативы, вы можете сделать это в другом порядке и избежать использования СО, разница в том, что он ничего не создаст, если какая-либо из этих книг / авторов не будет соответствовать.

MATCH (author1:Author1 {name: 'Ursula K. Le Guin'})
MATCH (book1:Book1 {title: 'The Ones Who Walk Away From Omelas'})
MATCH (author2:Author2 {name: 'Vernor Vinge'})
MATCH (book2:Book2 {title: 'A Fire Upon the Deep'})
CREATE (author1) - [:IS_AUTHOR_OF] -> (book1)
CREATE (author2) - [:IS_AUTHOR_OF] -> (book2)

P.S .: Похоже, вы использовали Book1 и Book2 вместо только Book, и то же самое для авторов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...