Sql 如何在OrientDB中合并两个查询的结果

Sql 如何在OrientDB中合并两个查询的结果,sql,orientdb,Sql,Orientdb,假设我有4个顶点类:V1,V2,V3,V4 还有3个边类:E1、E2、E3 那么它们的实例可能是这样连接的: V1 --E1--> V2 V2 --E2--> V3 V2 --E3--> V4 V3 --E3--> V4 因此,在图表方面,类似于: V1---E1---V2 | \ E2 E3 | \ V3---E3---V4 按照上面所示的方向 我现在对从V1到V

假设我有4个顶点类:V1,V2,V3,V4 还有3个边类:E1、E2、E3

那么它们的实例可能是这样连接的:

V1 --E1--> V2
V2 --E2--> V3
V2 --E3--> V4
V3 --E3--> V4
因此,在图表方面,类似于:

V1---E1---V2
          |   \
          E2    E3
          |        \
          V3---E3---V4
按照上面所示的方向

我现在对从V1到V4显示的精确边上的路径感兴趣,它们之间可能还有其他边,我们不知道,所以只有前面提到的边类型是可以的

要检查从V1到V4的路径之一是否存在,而如果路径存在,则返回V4:

SELECT EXPAND(out('E1').out('E3')) FROM V1 WHERE id = <someIdThatV1Has>
SELECT EXPAND(out('E1').out('E2').out('E3')) FROM V1 WHERE id = <someIdThatV1Has>
要检查另一个路径是否存在,如果路径存在,将返回V4:

SELECT EXPAND(out('E1').out('E3')) FROM V1 WHERE id = <someIdThatV1Has>
SELECT EXPAND(out('E1').out('E2').out('E3')) FROM V1 WHERE id = <someIdThatV1Has>
我唯一感兴趣的是知道这两条路径中是否存在一条。我想通过一个查询来实现这一点

问题:

如何将这两个查询合并到一个查询中,以确定这两个路径中是否存在一个

如果可能的话,对于如何在OrientDB中合并不同的遍历查询以及明确的答案,我们将非常感谢

谢谢

尝试使用unionAll

select expand($c) 
let $a = ( SELECT EXPAND(out('E1').out('E3')) FROM V1 WHERE id = <someIdThatV1Has>), 
$b = ( SELECT EXPAND(out('E1').out('E2').out('E3')) FROM V1 WHERE id = <someIdThatV1Has>),
$c = unionAll( $a, $b )
您可以通过以下链接查看文档

先生,你真是太棒了。正是我需要的。不知道我怎么会在文档中漏掉它。谢谢!哦,为了正确。最后有一个括号太多了。否则它工作得很好!