You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OrientDB查询问题:如何用SELECT关联查询Test1.a与Test2.c字段

解决方案:用SELECT+EXPAND实现关联边与顶点属性的行式输出

针对你的数据结构:[Vertex|Company] <-- [Edge|Test1 {'a':'b'}] -- [Vertex|Test2 {'c':'de'}],要通过CompanyID查询关联的Test1.a和Test2.c并每行展开结果,无需使用MATCH语法的话,可以用SELECT结合EXPAND来实现:

正确查询语句

SELECT edge.a, edge.outV().c 
FROM (
  SELECT expand(inE('Test1')) as edge 
  FROM Company 
  WHERE CompanyID = 123
)

逻辑说明

  1. 子查询部分:从指定CompanyID的顶点出发,用inE('Test1')获取所有指向它的Test1边,再通过expand()把边集合展开为单条边的记录,让外层查询能遍历每条独立的边。
  2. 外层查询:针对每条展开的边,直接取边的a属性,同时通过outV()获取这条边关联的Test2顶点,再提取其c属性。这样每条结果行就对应一组a和c的配对值,完全符合你要的展开格式。

你之前尝试的问题分析

  • 第一个查询:inV(Test2)语法逻辑错误,Test2是Test1边的出顶点(outV)而非入顶点,且直接嵌套inE().a会返回集合而非单值,无法正确配对属性。
  • 第二个查询:TRAVERSE会把边和顶点作为独立记录返回,导致a(边属性)和c(顶点属性)分行显示,无法形成配对组。
  • 第三个查询:bothE()和both()返回的都是集合类型结果,最终会以分组形式展示,无法展开为单行单组数据。

内容的提问来源于stack exchange,提问作者Antony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 00:37:16