【问题标题】:OrientDB SELECT and subqueriesOrientDB SELECT 和子查询
【发布时间】:2015-05-11 12:33:49
【问题描述】:

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

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

这不是:

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

这不是我真正的逻辑,而是我在做一些测试时想出的……

【问题讨论】:

  • 我刚刚意识到我必须在子查询中使用“expand”,但是为什么呢?

标签: orientdb


【解决方案1】:

如您所见,您需要在子查询中使用 expand,所以它看起来像

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-22
    • 2014-10-13
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多