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

时间:2018-08-09 16:59:58

标签: 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)
))))

1 个答案:

答案 0 :(得分:1)

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())