OrientDB:select edge where out=(select ??) 不起作用
OrientDB: select edge where out=(select ??) does not work
我有问题。我认为这应该可行,否则其他人会 运行 解决这个问题。
以下命令完美运行:
// suppose my record id is #10:0
select from MyEdgeType where out=#10:0
这行得通。
select from MyNodeType where name="this"
> returns obj with @rid = #10:0
以下无效:
select from MyEdgeType where out=(select from MyNodeType where name="this")
select from MyEdgeType where out=(select @rid from (select from MyNodeType where name="this")
select from MyEdgeType let $rec = (select fcom MyNodeType...) where out=$rec.rid
... etc.
没有任何效果。没有什么。我如何从边缘 select 这样我就不必知道我想提前获取的边缘附带的记录 ID?
您正在比较结果集上的单个字段(就像比较字符串和数组),请尝试这样的操作:
select from MyEdgeType where out IN (select from MyNodeType where name="this")
我成功了。
由于我的节点是唯一的(这是一个约束),我在过滤期间使用唯一的 属性 来标识它们,而不是子查询中的记录 ID:
select from MyEdgeType where out.unique_identifier=...
成功了。
我有问题。我认为这应该可行,否则其他人会 运行 解决这个问题。
以下命令完美运行:
// suppose my record id is #10:0
select from MyEdgeType where out=#10:0
这行得通。
select from MyNodeType where name="this"
> returns obj with @rid = #10:0
以下无效:
select from MyEdgeType where out=(select from MyNodeType where name="this")
select from MyEdgeType where out=(select @rid from (select from MyNodeType where name="this")
select from MyEdgeType let $rec = (select fcom MyNodeType...) where out=$rec.rid
... etc.
没有任何效果。没有什么。我如何从边缘 select 这样我就不必知道我想提前获取的边缘附带的记录 ID?
您正在比较结果集上的单个字段(就像比较字符串和数组),请尝试这样的操作:
select from MyEdgeType where out IN (select from MyNodeType where name="this")
我成功了。
由于我的节点是唯一的(这是一个约束),我在过滤期间使用唯一的 属性 来标识它们,而不是子查询中的记录 ID:
select from MyEdgeType where out.unique_identifier=...
成功了。