如何仅使用具有关联关系行的行获取SQL结果

问题描述

我正在尝试使用Prism Client查询数据库,并且只想获取联接表中具有外键的行。

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

我尝试过类似的事情:

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

但是结果不是正确的。 我不确定如何使用“无,部分或全部”

解决方法

假设我有一个这样的架构:

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,},})

您可以尝试这种方式进行检查吗?