2015-06-25 62 views
1

我有一個這樣的暗號查詢工作正常:分組聯合在一起的Cypher結果

MATCH path = (start)-[]-(some)-[]-(path)-[]-(end) 
RETURN start, end, path 
UNION 
MATCH path = (start)-[]-(some)-[]-(other)-[]-(path)-[]-(end) 
RETURN start, end, path 

唯一的問題是,在某些情況下,同一startend節點可以匹配導致重複兩個模式(相對於startend)。是否有

RETURN DISTINCT start, end, COLLECT(path)

的UNION結果的暗號呢?就像一個SQL子查詢?

回答

2

我想你不能通過UNION收集多個RETURN。有GitHub上的要求類似一個開放的問題:https://github.com/neo4j/neo4j/issues/2725

如果開始和結束的事情,你可以先MATCH它們,然後嘗試MATCH不同的路徑:

MATCH (start), (end) 
// try to match the different paths 
OPTIONAL MATCH path_a = (start)-[]-(some)-[]-(path)-[]-(end) 
OPTIONAL MATCH path_b = (start)-[]-(some)-[]-(other)-[]-(path)-[]-(end) 
RETURN DISTINCT start, end, path_a, path_b 

不知道這會工作,你的情況,但它會給你每一對開始/結束一個結果行。