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

NodeJS下使用SQLite3如何将JOIN关联查询结果转为嵌套数组结构

解决方案

完全可以通过 SQLite 实现,不需要切换到非关系型数据库。SQLite 从 3.9.0 版本开始内置了 JSON 序列化相关函数,你要的嵌套结构可以通过json_object和json_group_array两个函数组合实现。

可用查询语句如下:

SELECT 
  t1.id AS fk,
  t1.value1,
  t1.value2,
  json_group_array(
    json_object(
      'id', t2.id,
      'value1', t2.value1,
      'fk', t2.fk
    )
  ) AS result
FROM table1 t1
INNER JOIN table2 t2 ON t2.fk = t1.id
WHERE t1.id = 1
GROUP BY t1.id, t1.value1, t1.value2;

后续处理说明

Node.js 的 sqlite3 包返回的查询结果中,result 字段默认是 JSON 字符串,你只需要对该字段执行一次JSON.parse()即可得到你期望的嵌套数组结构。
如果你不想手动做序列化处理,也可以使用支持关联关系配置的 ORM 库,配置table1和table2的一对多关联后,查询时添加关联查询参数就能直接返回完全符合你要求的 JS 对象。


内容的提问来源于stack exchange,提问作者J.F.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:18:03