Laravel построитель запросов переносит дополнительное предложение select в подзапрос - PullRequest
0 голосов
/ 13 марта 2020

Я использую laravel 6, и у меня есть метод, который возвращает производную таблицу. Я хочу использовать его в подзапросе. Когда я вызываю метод getSimilar ниже, почему он оборачивает дополнительное предложение select?

public function __construct(Job $model)
{
    $this->model = $model;
}

public function getJobs()
{
      $query = $this->model
                    ->join('job_status', 'job_status.job_id', '=', 'jobs.id')
                    ->select('jobs.id', 'jobs.title', 'job_status.status');

      return $query;
}

public function getSimilar()
{
      $subQuery = $this->getJobs();


      return DB::table(function ($query) use ($subQuery) {
        $query->from($subQuery);
      }, 't1')->where('t1.id', '<>', 6)->limit(5)->get();


}

Журнал запросов для метода getSimilar, приведенного выше, возвращает:

 select * from 
    (select * from 
       (select jobs.id
             , jobs.title
             , job_status.status 
          from jobs
    inner join job_status 
            on job_status.job_id = jobs.id) as t1) as ``)
 where t1.id <> 6
 limit 5

Почему оборачивает дополнительный оператор выбора?

Любая помощь приветствуется.

...