Я думаю, что вам нужно перепроверить ваш запрос и желаемый результат, у вас есть неправильные орфографические ошибки и неправильный синтаксис, и ваш вывод не отражает ваш ввод. Команда тестирования должна в конечном итоге стать дочерним узлом: Company a, а не Emp 1: CompanyLeaf.
Давайте сначала создадим такие узлы, как это (вам нужно включить редактор запросов с несколькими утверждениями в настройки браузера Neo4j):
CREATE (n:Company:Node {id:'a', title:'A'});
CREATE (cl:CompanyLeaf:Node {id:'itTeam', title:'IT Team', parentId:'a'});
CREATE (cl:CompanyLeaf:Node {id:'testingTeam', title:'TESTING Team', parentId:'a'});
CREATE (cl:CompanyLeaf:Node {id:'emp1', title:'Emp 1', parentId:'itTeam'});
Затем давайте добавим индекс: Node (id) для поддержки быстрого поиска, который нам понадобится для создания отношений.
CREATE INDEX ON :Node(id)
Тогда для проверки всех узлов CompanyLeaf в графе и прикрепления их к узлу с указанным идентификатором в качестве родителя, мы можем использовать это:
MATCH (c:CompanyLeaf)
WHERE NOT (c)-[:PARENT]->()
MATCH (parent:Node {id:c.parentId})
CREATE (c)-[:PARENT]->(parent)
Предложение WHERE NOT гарантирует, что мы не создадим дубликат отношения в случае, если мы уже выполнили запрос, или в случае, если мы делаем несколько импортов узлов, между которыми происходит создание отношений.
Также это создает: отношения PARENT, указывающие на родителя, поскольку ваш пример не имеет смысла with: дочерние отношения, указывающие на родителя.