如何用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
相关产品推荐
相关产品推荐

