【问题标题】:One to many "twice" in one sql query (or in an efficient way)一个 sql 查询中的一对多“两次”(或以一种有效的方式)
【发布时间】:2022-01-12 21:38:04
【问题描述】:

我有老师、班级和学生。我的表类有一个教师的外键,学生有一个班级的外键(一个老师有很多班级,每个班级有很多学生)。我的目标是从一位老师那里获得所有班级和所有学生,并返回这样的 json:

[
 {
  "class_id":1,
  "name":"Class One",
  "students":[
   {
    "student_id":1,
    "name":"Student One"
   },
   {
    "student_id":2,
    "name":"Student Two"
   }
  ]
 },
 {
  "class_id":2,
  "name":"Class Two",
  "students":[
   {
    "student_id":3,
    "name":"Student Three"
   },
   {
    "student_id":4,
    "name":"Student Four"
   }
  ]
 }
]

我脑海中闪过的唯一想法是进行一次查询以从老师那里获取所有课程,然后在课程中迭代并为每个课程进行查询以获取其学生(但这听起来效率很低)。

我有什么选择?

【问题讨论】:

    标签: sql database one-to-many


    【解决方案1】:

    只需在一个 SQL 查询中将 3 个表连接在一起

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-11
      • 1970-01-01
      • 1970-01-01
      • 2018-06-11
      • 2019-10-21
      • 1970-01-01
      • 1970-01-01
      • 2010-09-24
      相关资源
      最近更新 更多