从选择

时间:2015-10-17 12:55:49

标签: sql orientdb

我正在评估OrientDB数据库。

我有两个从关系数据库导入的文档类。

class Order with properties (ID: integer, OrderItems: EmbeddedList of OrderItem) 

class OrderItem with properties (ID: integer, OrderID: integer, PropA: string)

这两个类都填充了数据库中的数据(Order.OrderItems字段除外)。

现在我想将OrderItem类中的数据插入到基于OrderID的类Order中。

我尝试过像

这样的SQL
update Order set OrderItems = (select from OrderItem where OrderID = Order.ID)

没有成功,错误如

字段' Order.OrderItems'已声明为EMBEDDEDLIST,但该值为具有有效RecordId ...

的文档

我明白嵌入式记录不应该有RecordId,所以我试过

update Order set OrderItems = (select PropA from OrderItem where OrderID = Order.ID)

没有成功,错误如

字段' Order.OrderItems'已被声明为EMBEDDEDLIST与链接类' OrderItem'但记录没有上课......

我也试过

update Order
set OrderItems = (select @class, PropA from OrderItem where OrderID = Order.ID)

没有成功。

还有其他方式(OrientDB 2.1.4)......

强麦

1 个答案:

答案 0 :(得分:2)

我找到了解决方案

update Order
set OrderItems = (select $current.exclude('@rid') from OrderItem where $parent.$current.ID = OrderID)