Вложенный запрос MYSQL в Laravel Eloquent ORM - PullRequest
0 голосов
/ 11 октября 2018

Привет, я пытаюсь передать простой вложенный запрос в Laravel ORM, поэтому я ищу помощь, я хочу знать, каков наилучший подход для ее решения.

Студент принадлежит к курсу,В курсе много студентов, студенты могут участвовать во многих стажировках, и в каждой стажировке может быть много студентов.

Это таблицы важных слов: Курсы, Студенты (id, name, 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 голосов
/ 15 октября 2018

Если вы определили отношения в моделях, это должно выглядеть примерно так (не проверено):

$result = Attandace::selectRaw('count(*), internship_id')
              ->whereHas('students.courses', function($query) {
                   $query->where('courses.name', 'X course');
              })->groupBy('internship_id');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...