Skip to content

一对多关系

一对多 (1-n) 关系指其中一侧可以关联另一侧零或多条记录的关系

注意

注意

  1. 一个列表字段,不标注 @relation 必须填写 没有?

  2. 带标注的关系字段包含(其关系标量) 要么都是选填 要么都是必填

表的关系

ts
model dept {
  id   Int    @id @default(autoincrement())
  name String @db.VarChar(50)
  emp  emp[]
}
model emp {
  id        Int       @id @default(autoincrement())
  name      String    @db.VarChar(50)
  age       Int?
  job       String?   @db.VarChar(20)
  salary    Int?
  entrydate DateTime? @db.Date
  managerid Int?
  dept_id   Int?
  dept      dept?     @relation(fields: [dept_id], references: [id])
}

查询语法

注意

注意

  1. include 不能和 select 同级别

  2. 最好使用 select 这样最省事.要是嵌套的话 里面再写一个 select

查询

ts
  async onebymany() {
    const result = await this.prismadbService.dept.findMany({
      select: {
        name: true,
        emp: {
          select: {
            name: true,
          },
        },
      },
    });
    return result;
  }