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

如何用Supabase JavaScript SDK查询含至少一条子记录的父记录?

使用Supabase JavaScript SDK查询存在子记录的父表记录

你可以通过Supabase的select方法结合inner join实现该需求,内连接只会保留子表中有匹配记录的父表条目,和Prisma中some: {}的逻辑完全等价。

代码示例

// 查询包含子表字段的父表记录(若客户有多条订单,会返回多条重复客户记录)
const { data: customersWithOrders, error } = await supabase
  .from('customer')
  .select('*, order(*)')
  .innerJoin('order', 'customer.id', 'order.customer_id');

// 查询去重后的父表记录(每个客户仅返回一条)
const { data: distinctCustomersWithOrders, error: distinctError } = await supabase
  .from('customer')
  .select('*')
  .innerJoin('order', 'customer.id', 'order.customer_id')
  .distinct('customer.id');

关键说明

  • innerJoin:核心逻辑,确保只返回在order表中存在关联记录的customer条目。
  • distinct:当父表对应多条子记录时,用该方法去重,得到唯一的父表记录列表。
  • 可按需调整select的字段,比如不需要子表数据时,直接写select('*')即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:43:00