【问题标题】:How to get sql result with only rows that has a connected relations row如何仅使用具有连接关系行的行获取sql结果
【发布时间】:2020-12-17 17:00:55
【问题描述】:

我正在尝试使用 Prism 客户端查询数据库,并且想只取回连接表中具有外键的行。

例如,获取所有还创建了帖子的用户。我需要一种“INNER JOIN”。

我尝试过类似的方法:

return this.prisma.user.findMany({
    where: {
        Post: {
            some: {
                id: {
                    not: 0,
                }
            }
        }
    }
});

但结果不是正确的。 我不知道如何使用“none, some or every”

【问题讨论】:

    标签: prisma prisma2


    【解决方案1】:

    假设我有这样的架构:

    model User {
      id        Int      @default(autoincrement()) @id
      name      String
      posts     Post[]
      createdAt DateTime @default(now())
      updatedAt DateTime @updatedAt
    }
    
    model Post {
      id        Int      @default(autoincrement()) @id
      title     String
      user      User?    @relation(fields: [userId], references: [id])
      userId    Int?
      createdAt DateTime @default(now())
      updatedAt DateTime @updatedAt
    }
    

    我通过以下查询获得没有任何帖子的用户:

      const usersWithoutPosts = await prisma.user.findMany({
        where: {
          posts: {
            none: {
              id: undefined,
            },
          },
        },
      })
    

    你能试试这个方法检查一下吗?

    【讨论】:

    • 谢谢这是答案 :-) 我不得不使用 some: { id: undefined, }, 并得到了预期的结果。
    猜你喜欢
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2016-01-28
    • 2010-12-02
    相关资源
    最近更新 更多