Левое соединение laravel SQL - PullRequest
       14

Левое соединение laravel SQL

0 голосов
/ 24 февраля 2020

У меня есть следующие таблицы:

- Users
- Studies
- Study_User
- Questions

Отношения:

  • Многие ко многим между Users и Studies через study_user
  • Studies Один ко многим Questions, поэтому в каждом исследовании может быть один или несколько вопросов.

И у меня есть следующий запрос:

$builder = Question::groupBy('questions.id');
$builder = $builder
    ->leftjoin('studies', 'studies.id', '=', 'questions.study_id')
    ->leftjoin('study_users', 'studies.id', '=', 'study_users.study_id')
    ->where('study_users.user_id', '=', $this->id)
    ->where('studies.starts_at', '<=', Carbon::now())
    ->where('studies.ends_at', '>=', Carbon::now())
    ->select('questions.*');

return $builder;

Предположим, что мы добавили еще одну таблицу с именем Modules, где:

  • Studies one -ко-многим Modules, а затем
  • Modules один-ко-многим Questions

Так что мы нарушаем прямую связь между Studies и Questions ,

Как запрос должен измениться, чтобы получить те же результаты?

...