Синтаксическая ошибка: 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, и то же самое для авторов.