You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Couchbase N1QL基于非键元素的简单内连接技术问询

实现Couchbase文档的Inner Join查询

嘿,针对你这个场景,我直接给你写好对应的N1QL查询,再拆解一下逻辑,保证你能看懂~

首先先明确你的数据场景:

  • Bucket名为test,包含两个员工文档
  • 文档1是经理(type: 'm',managerId: null),empId: 1
  • 文档2是普通员工(type: 'r'),managerId: 1,对应上面的经理

基础Inner Join查询

这个查询会把普通员工和他们对应的经理关联起来,返回包含经理姓名的结果:

SELECT emp.*, manager.e_name AS manager_name
FROM `test` emp
INNER JOIN `test` manager ON emp.managerId = manager.empId
WHERE emp.type = 'r'

查询逻辑解释

  • 我们给同一个Bucket的两组数据起了别名:emp代表普通员工文档,manager代表经理文档
  • INNER JOIN 的核心条件是员工的managerId等于经理的empId,这就是关联两个文档的关键
  • WHERE emp.type = 'r' 用来过滤出普通员工,因为经理的managerId是null,Inner Join会自动排除掉不符合关联条件的经理文档

预期返回结果

执行后你会得到这样的结构化结果:

[
  {
    "empId": 2,
    "e_name": "def",
    "type": "r",
    "managerId": 1,
    "manager_name": "abc"
  }
]

更严谨的查询(可选)

如果想确保关联的确实是经理类型的文档,可以把manager.type = 'm'加入Join条件,避免意外关联其他数据:

SELECT emp.*, manager.e_name AS manager_name
FROM `test` emp
INNER JOIN `test` manager ON emp.managerId = manager.empId AND manager.type = 'm'
WHERE emp.type = 'r'

内容的提问来源于stack exchange,提问作者dripto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:21:42