2017-06-16 53 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 

希望它能帮助, 汤姆

相关问题