ОШИБКА: разрешен только один тип отношений для Mensge открытого шифрового запроса. - PullRequest
0 голосов
/ 24 августа 2018

Разрешено ли создание приведенного ниже объекта в запросе открытого шифра? Я пытаюсь сделать это в agensgraph,

MATCH (mc: mat_comp)
MATCH (p:plant)
MATCH (mb: material)
WHERE mc.component = mb.material and mc.plant=p.b_plant
MERGE (mc) <- [ comp_2_p] - ( p)
;
ERROR: only one relationship type is allowed for MERGE

Какую ошибку я делаю ... потому что узлы mat_comp и plant имеют завод в качестве общих узлов mat_comp и материалаимеет материал как обычный mat_comp имеет материал столбец завода столбец

p: plant
mb:
material colum

MATCH (mc: mat_comp)
MATCH (p:plant)
MATCH (mb: material)
WHERE mc.comp = mb.material and mc.plant=p.b_plant
RETURN mc.comp, mb.material, mc.plant, p.b_plant;
comp | material | plant | b_plant
------------+------------+-------+--------------
"10" | "10" | "33" | "33"

=# \d material
material | character varying(50) | | | |
b_plant | character varying(50) |

=# \d mat_comp
material | character varying(50) | | | |
comp | character varying(50) | | | |
plant | character varying(50) | | | |

-# \d plant
--------------+-----------------------+-----------+----------+---------+-------------
b_plant | character varying(50) |

1 Ответ

0 голосов
/ 27 сентября 2018

Я думаю, что ваш запрос содержит простую ошибку в предложении MERGE.

Чтобы сократить до сути. Вы можете использовать этот запрос

MERGE (mc) <- [:comp_2_p] - (p)

Ошибка - двоеточие. Слово после двоеточия - это тип компонента (например, узел и ребро). Слово перед двоеточием похоже на местоимение в предложении Cypher (я не знаю его точного названия).

Если у вас все еще есть другая ОШИБКА, использующая вышеуказанный запрос, вы должны проверить, объявлен ли elabel "comp_2_p" или нет.

...