嘿,我试图将一个简单的嵌套查询传递给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
答案 0 :(得分:0)
如果您已在模型中定义了关系,则它应该看起来像这样(未经测试):
$result = Attandace::selectRaw('count(*), internship_id')
->whereHas('students.courses', function($query) {
$query->where('courses.name', 'X course');
})->groupBy('internship_id');