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

如何在PostgreSQL中分组左连接,仅返回关联数据数组?

如何用Drizzle获取仅包含projectPdfs数据的数组

方法一:直接查询关联表(最优解)

你不需要从projects表做左连接,直接从projectPdfs表发起查询,关联projects表过滤指定slug的项目即可,返回结果本身就是纯PDF数据,完全匹配你要的格式:

const pdfs = await db
  .select()
  .from(projectPdfs)
  .innerJoin(projects, eq(projectPdfs.projectId, projects.id))
  .where(eq(projects.slug, slug));

方法二:处理现有查询的返回结果

如果必须保留原左连接查询逻辑,可以在拿到数据后用map提取每个项里的pdfs字段:

const data = await db
  .select()
  .from(projects)
  .where(eq(projects.slug, slug))
  .leftJoin(projectPdfs, eq(projects.id, projectPdfs.projectId));

// 提取目标PDF数组
const pdfs = data.map(item => item.pdfs);

关于groupBy的说明

你之前尝试的groupBy不适合这个场景,它是用来做数据聚合(比如统计数量、分组拼接)的,而你的需求是获取关联表的每条原始记录,并非聚合数据,所以用groupBy达不到预期效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 07:57:42