【问题标题】:How to retrieve a sub query in prisma client with same table?如何在具有同一张表的 prisma 客户端中检索子查询?
【发布时间】:2022-01-06 23:22:40
【问题描述】:
select * 
from WeeklyChallengeCourses 
where weekly_challenge_id = (select weekly_challenge_id 
                             from WeeklyChallengeCourses 
                             where course_id = 210);

结果将是下面选择的一个:

const data = await context.prisma.weeklyChallengeCourses.findMany({
        where:{
            weekly_challenge_id: {
                ..............
            }
        },
    });

【问题讨论】:

    标签: node.js postgresql prisma prisma-graphql


    【解决方案1】:

    在 Prisma 中,您必须使用两个不同的查询来解决这个问题:

    1. 运行等效的子查询来获取weekly_challenge_id
    2. 使用第 1 步中找到的 weekly_challenge_id 运行 findMany
    // I'm assuming course_id is unique. 
    const course = await context.prisma.findUnique({ where: { course_id: 210 } }); 
    
    const data = await context.prisma.weeklyChallengeCourses.findMany({
            where:{
                weekly_challenge_id: course.weekly_challenge_id
            },
        });
    

    或者,您可以使用rawQuery feature 直接运行 SQL 并在一个查询中执行。

    【讨论】:

    • 它是不是原始查询以外的唯一选择?
    • 不幸的是,我认为没有一个 prisma 查询可以为您做到这一点。我不能确切地说出来,但没有别的想法。
    • 感谢@Tasin Ishmam 分享的信息
    • 欢迎,希望能帮到你:)
    猜你喜欢
    • 2020-12-18
    • 2022-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    相关资源
    最近更新 更多