2017-06-16 81 views
3

我想檢查一個節點是否存在關係,如果找不到,那麼我想檢查來自同一節點的另一種關係類型。密碼查詢 - 檢查一個關係,如果不存在檢查另一個

喜歡的東西,(一個:類型) - [:relation1] - (b)中如果relation1存在查詢返回節點B。如果不存在,然後將檢查另一種關係等,(一個:類型) - [:relation2] - (b)中並返回節點B

我想知道如何將它寫成單個密碼查詢。任何幫助,將不勝感激。謝謝。

回答

2

您可以使用COALESCE()進行備份選擇的情況下,在第一關係的節點爲空。

// after you've already matched to a 
OPTIONAL MATCH (a)-[:relation1]-(b) 
OPTIONAL MATCH (a)-[:relation2]-(c) 
WITH a, COALESCE(b, c) as b // will use node c if b is null 
... 
+0

Thanks!有效。 –

2

如何使用UNION?

MATCH (a:Type)-[:relation1]-(b) 
RETURN b 
UNION 
MATCH (a:Type)-[:relation2]-(b) 
RETURN b 

希望它能幫助, 湯姆

相關問題