2015-07-02 2 views
0

Я не понимаю какого-то поведения и надеялся, что кто-то здесь сможет это объяснить. Если я выполнить запрос Neo4j:Использование кортежей в WHERE ... IN

MATCH (node1-[:depends*]->node2) 
WITH [node1.name, node2.name] as dependencies 
return dependencies 

получить список кортежей node1, node2 показывая все кортежи, в которых node1 зависит от node2 где-то в графике.

Если я следующий запрос, я бы ожидать, что все кортежи в зависимости должны быть возвращены, но вместо этого я получаю пустой список:

MATCH (node1-[:depends*]->node2) 
WITH [node1.name, node2.name] as dependencies 
return dependencies 
MATCH n1--n2 
WHERE ([n1.name,n2.name] IN dependencies) 
return n1,n2 

Теперь, как я могу использовать зависимости в подзапрос?

ответ

0

Multiple MATCH положения могут следовать друг за другом в том же запросе, так что это может работать для вас:

MATCH (node1-[:depends*]->node2) 
WITH [node1.name, node2.name] as dependencies 
MATCH n1--n2 
WHERE ([n1.name,n2.name] IN dependencies) 
return n1,n2; 
+0

, что не работает, к сожалению. – corpaul

Смежные вопросы