使用 Laravel 的查询生成器或 Eloquent 将 table 与临时查询进行内部联接

Using Laravel's query builder or Eloquent to inner join a table with a temporary one

我有一个相当复杂的查询,我将对其进行简化以使其更易于阅读:

SELECT `temp_table`.field1, `temp_table`.field2 FROM
(A TEMPORARY TABLE MADE OUT OF A SELECTION QUERY) AS temp_table
INNER JOIN table ON temp_table.field1 = table.id 
WHERE table.some_field = 'something'

我目前为此使用 RAW 查询,但现在我想在 Laravel 中使用查询生成器或 Eloquent ORM 重写它。我是 Laravel 的新手。因此,我们将不胜感激任何想法或帮助。

尝试使用 fromSub

 DB::query()->fromSub(function ($query) {
            $query->selectRaw('your query to get the temp_table');
        }, 'temp_table')->join('table','table.id','=','temp_table.field1')
        ->where('table.some_field','something');

方法'fromSub'以一个字符串作为第二个参数,在sql中是'as',所以你可以用它来命名temp table ... .