Couchbase N1QL 子查询连接问题

Sıl*_*maz 6 couchbase sql++

SELECT (SELECT RAW subcomments 
FROM comments.subcomments AS subcomments
JOIN users ON subcomments.userId = users.id 
ORDER BY subcomments.createdDate DESC) as subcomments,
ARRAY_COUNT(comments.subcomments) as subcommentCount 
FROM comments where comments.id = "f4f0f481-f0d6-4edf-8a0c-494651becdf2" and projectId= "1"
Run Code Online (Sandbox Code Playgroud)

当我尝试运行此查询时,收到以下错误:

[
  {
    "code": 5370,
    "msg": "Unable to run subquery - cause: FROM in correlated subquery must have USE KEYS clause: FROM users.",
    "query": "SELECT (SELECT RAW subcomments \nFROM (Select * from comments.subcomments as sbcm\nJOIN users ON sbcm.userId = users.id ) as a\nORDER BY subcomments.createdDate DESC) as subcomments,\nARRAY_COUNT(comments.subcomments) as subcommentCount \nFROM comments where comments.id = "f4f0f481-f0d6-4edf-8a0c-494651becdf2" and projectId= "1""
  },
  {
    "code": 5010,
    "msg": "Error evaluating projection. - cause: FROM in correlated subquery must have USE KEYS clause: FROM users."
  }
]
Run Code Online (Sandbox Code Playgroud)

我该怎么办?你能帮助我吗?

vsr*_*vsr 2

目前相关子查询需要 USE KEYS MB-30813。您可以尝试以下

SELECT d.subcommentCount,
       (SELECT RAW sc1
        FROM d.subcomments AS sc1
        ORDER BY sc1.createdDate DESC) AS subcomments
FROM ( SELECT COUNT(sc) AS subcommentCount,
              ARRAY_AGG(sc) AS subcomments
       FROM comments AS c
       LEFT UNNEST c.subcomments AS sc
       JOIN users ON sc.userId = users.id
       WHERE c.id = "f4f0f481-f0d6-4edf-8a0c-494651becdf2" AND c.projectId= "1"
       GROUP BY META(c).id) AS d;
Run Code Online (Sandbox Code Playgroud)