如何在Prisma Client中实现同表子查询获取对应匹配数据?
你可以直接在weekly_challenge_id的过滤条件中嵌套Prisma查询来实现标量子查询效果,完整代码如下:
const data = await context.prisma.weeklyChallengeCourses.findMany({ where:{ weekly_challenge_id: { equals: context.prisma.weeklyChallengeCourses.findFirst({ where: { course_id: 210 }, select: { weekly_challenge_id: true } }) } }, });
Prisma会自动将这段嵌套查询转换为你给出的原生SQL逻辑,最终返回的结果和直接执行SQL完全一致。
如果你的业务场景中course_id = 210可能匹配到多条不同weekly_challenge_id的记录,可以将equals改为in,嵌套的findFirst改为findMany即可兼容多值匹配的场景:
const data = await context.prisma.weeklyChallengeCourses.findMany({ where:{ weekly_challenge_id: { in: context.prisma.weeklyChallengeCourses.findMany({ where: { course_id: 210 }, select: { weekly_challenge_id: true } }) } }, });
内容的提问来源于stack exchange,提问作者Ilyas Arafath
相关产品推荐
相关产品推荐

