MYSQL将查询嵌套到Laravel Eloquent ORM中

时间:2018-10-11 01:36:48

标签: mysql laravel

嘿,我试图将一个简单的嵌套查询传递给Laravel ORM,所以我正在寻求帮助,我想知道解决该问题的最佳方法。

学生属于一门课程,该课程有很多学生,学生可以参加很多实习,每个实习可以有很多学生。

这是重要的表格:课程,学生(id,名称,course_id),实习和pivot_table_attendance(internship_id,student_id),我需要知道每个实习中每门课程的学生总数

这是我的原始查询:

  SELECT count(*), internship_id FROM "attendance" where student_id in 
  (select id from "students" where course_id in 
  (select id from from "Courses"  where  name='X course')) 
  group by internship_id

1 个答案:

答案 0 :(得分:0)

如果您已在模型中定义了关系,则它应该看起来像这样(未经测试):

$result = Attandace::selectRaw('count(*), internship_id')
              ->whereHas('students.courses', function($query) {
                   $query->where('courses.name', 'X course');
              })->groupBy('internship_id');