Laravel查询与临时表

时间:2019-02-23 15:09:00

标签: php mysql laravel laravel-5

如何将此查询转换为laravel db查询。

    SELECT * FROM {
      Select * from organizers
      Order by organizers.rank
} Group by t.department

这是查询的简化版本。实际上,内部查询具有更多的where子句,并使用laravel db查询构建。

编辑:我知道原始查询。但这不是我想要的。内部查询很复杂,并且有很多条件where子句。我想保留在那里使用的数据库查询对象。

2 个答案:

答案 0 :(得分:1)

您可以有2个不同的查询生成器,并按如下所示合并它们的绑定:

$innerQuery = DB::table('organizers')->orderBy('organizers.rank');

$mainQuery = DB::table(DB::raw('(' . $innerQuery->toSql() . ') as t'))
    ->mergeBindings($innerQuery->getQuery())
    ->groupBy('t.department')
    ->get();

这还将帮助您零售$innerQuery构建器实例,以供您稍后在问题中使用。

答案 1 :(得分:0)

我认为您将不得不执行原始查询。

$result = DB::select("SELECT * FROM (
      Select * from organizers
      Order by organizers.rank
) Group by t.department");

参考:https://laravel.com/docs/5.7/queries#raw-expressions