首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SELECT DISTINCT的SurrealDB等价

SELECT DISTINCT的SurrealDB等价
EN

Stack Overflow用户
提问于 2022-11-05 08:17:41
回答 1查看 83关注 0票数 1

我有一张表,上面列出的课程是RELATEd by requires_prerequisite和其他课程。我试图获得课程的二级先决条件依赖性(以课程作为先决条件的课程),我有一个查询如下:

代码语言:javascript
复制
SELECT id, <-requires_prerequisite<-course<-requires_prerequisite<-course AS indirect_postrequisites
FROM course WHERE id = course:APS105;

这给了我这个:

代码语言:javascript
复制
[
  {
    "time": "526.8µs",
    "status": "OK",
    "result": [
      {
        "id": "course:APS105",
        "indirect_postrequisites": [
          "course:ECE345",
          "course:ECE297",
          "course:ECE344",
          "course:ECE295",
          "course:ECE345",
          "course:ECE297",
          "course:ECE344",
          "course:ECE295"
        ]
      }
    ]
  }
]

但是,正如您所注意到的,这里有重复的条目。我如何过滤掉重复的条目?在标准SQL中,我将使用

代码语言:javascript
复制
SELECT DISTINCT `in` FROM requires_prerequisite
WHERE `out` IN (SELECT `in` FROM requires_prerequisite WHERE `out`='APS105';

但如果我试着用

代码语言:javascript
复制
SELECT DISTINCT id, <-requires_prerequisite<-course<-requires_prerequisite<-course AS indirect_postrequisites
FROM course WHERE id = course:APS105;

然后我得到

代码语言:javascript
复制
{
  "code": 400,
  "details": "Request problems detected",
  "description": "There is a problem with your request. Refer to the documentation for further information.",
  "information": "There was a problem with the database: Parse error on line 1 at character 0 when parsing 'SELECT DISTINCT id, <-requires_prerequisite<-course<-requires_prerequisite<-course AS indirect_postr'"
}

如何筛选出重复的值?

如果你想知道副本为什么会出现,那是因为

代码语言:javascript
复制
RELATE course:ECE297->requires_prerequisite->course:APS105;
RELATE course:ECE297->requires_prerequisite->course:ECE244;
RELATE course:ECE244->requires_prerequisite->course:APS105;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-05 08:17:41

在搜索完文档之后,我找到了array::distinct() function,它做了我想做的事情:

代码语言:javascript
复制
SELECT id, array::distinct(<-requires_prerequisite<-course<-requires_prerequisite<-course) AS indirect_postrequisites FROM course WHERE id = course:APS105;
代码语言:javascript
复制
[
  {
    "time": "537.8µs",
    "status": "OK",
    "result": [
      {
        "id": "course:APS105",
        "indirect_postrequisites": [
          "course:ECE345",
          "course:ECE297",
          "course:ECE344",
          "course:ECE295"
        ]
      }
    ]
  }
]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74326176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档