Laravel - 使用Query Builder命名子查询

时间:2015-04-30 14:30:29

标签: php mysql laravel subquery query-builder

MySQL subqueries文档中,有一个子查询的例子:

SELECT ... FROM (subquery) [AS] name ...

这是我要转换的原始查询:

select SUBQUERY_NAME.* from (select id, name from items) AS SUBQUERY_NAME

有没有办法在不使用DB::raw()的情况下在Laravel Query Builder中执行此操作?

1 个答案:

答案 0 :(得分:2)

不幸的是没有。查询生成器有其局限性,更复杂的查询超出了其范围,这就是DB::raw()存在的原因。但是,如果您想使它更优雅并使用查询生成器生成子查询,您可以执行以下操作:

$subquery = DB::table('items')->select('id', 'name')->toSql();
DB::table(DB::raw($subquery . ' as subquery_name'))->select('subquery_name.*');