使用 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 ... .
我有一个相当复杂的查询,我将对其进行简化以使其更易于阅读:
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 ... .