从 OrientDB 中的 unionall 中删除重复结果

Removing duplicate results from unionall in OrientDB

我是 运行 selectmatch 查询的联合,其结果对于这个问题的目的等同于:(尝试使用演示数据库)

select expand(unionall(
  (select from castles limit 6),
  (select from castles limit 3)
))

问题是这些查询产生了一些重复的结果,我希望删除重复的结果。

通过阅读文档,我发现可以用 select distinct @this 包装它,这似乎可行,但我认为必须有一种更简洁的方法。

下面解决了我的问题,但是有没有更简单的方法呢?

select expand(*) from (select distinct(@this) from (
  select expand(unionall(
    (select from castles limit 6),
    (select from castles limit 3)
))))

asSet() 似乎是答案。它可用于结果数据,并将删除重复项。

https://orientdb.com/docs/last/sql/SQL-Methods.html#asset

完整查询:

select expand(unionall(
    (select from castles limit 6),
    (select from castles limit 3)
).asSet())