问题描述
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中的Query Builder或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',因此您可以使用它来命名临时表....