OrientDB SELECT和子查询

时间:2015-05-11 12:33:49

标签: orientdb

我真的对此感到困惑。 为什么会这样:

SELECT out('Posted').out('IsFromCategory') FROM #18:1

这不是:

SELECT out('IsFromCategory') FROM (SELECT out('Posted') FROM #18:1)

那不是我真正的逻辑,而是我做了一些测试......

1 个答案:

答案 0 :(得分:3)

如您所知,您需要在子查询中使用expand,因此它看起来像

SELECT out('IsFromCategory') FROM (SELECT expand(out('Posted')) FROM #18:1)

就像没有expand的子查询返回@rid的列表一样,所以没有什么可以从那里选择,而在扩展之后,你得到一个包含你的整个实体(顶点)的列表可以遍历他们拥有的任何边缘。

(不确定为什么这与你的第一个查询的行为不同。也许,因为第一个是一个查询而你明确要求遍历,而第二个是两个查询,当子查询返回时它不知道你想要检索整个顶点。