Sql 如何在OrientDB中合并两个查询的结果
假设我有4个顶点类:V1,V2,V3,V4 还有3个边类:E1、E2、E3 那么它们的实例可能是这样连接的: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
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 )
您可以通过以下链接查看文档
先生,你真是太棒了。正是我需要的。不知道我怎么会在文档中漏掉它。谢谢!哦,为了正确。最后有一个括号太多了。否则它工作得很好!