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

问题描述

我有一个相当复杂的查询,为了简化阅读,我将对其进行简化:

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',因此您可以使用它来命名临时表....

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...