Prisma 多对多关系查询

Posted

技术标签:

【中文标题】Prisma 多对多关系查询【英文标题】:Prisma many to many relations Query 【发布时间】:2021-10-03 11:27:42 【问题描述】:

我有一个User 模型和UserRelationship 模型

我已经与UserRelationship 模型建立了培训师/客户关系。

model User 
  id        Int      @id @default(autoincrement())
  trainerRelationship UserRelationship[] @relation("trainer")
  traineeRelationship UserRelationship[] @relation("trainee")

model UserRelationship 
  id          Int       @id @default(autoincrement())
  trainerId   Int?
  traineeId   Int?
  trainerUser User?  @relation("trainer", fields: [trainerId], references: [id])
  traineeUser User?  @relation("trainee", fields: [traineeId], references: [id])


我可以查询用户也可以查询他们的关系

例如:

  const trainer = await client.user
    .findUnique( where:  id , include:  trainerRelationship: true  )

我在这里得到的输出是这样的:


  id: 1,
  username: hellouser
  trainerRelationship: [
    

      id: 4,
      trainerId: 1,
      traineeId: 34
    
]

现在我想获取traineeId/trainerId 用户详细信息的详细信息,我的查询应该是什么?

【问题讨论】:

【参考方案1】:

好的,我已经通过下面的查询解决了,以防有人被卡住:

.findUnique( where:  id  ).trainerRelationship(
  include: 
    trainerUser: true,
  ,
)

【讨论】:

以上是关于Prisma 多对多关系查询的主要内容,如果未能解决你的问题,请参考以下文章

如何利用 Prisma 的隐式关系来创建以下关系? (一对多,多对多,一对一)

更新 Prisma 中的多对多关系

Prisma 删除与复合键的多对多关系

Prisma:在显式多对多关系中创建或连接记录

Mongodb Prisma 2 多对多关系正在单方面工作

Nextjs / prisma:我可以手动命名多对多表吗?