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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:24:05