如何使用laravel 5中的查询构建器从子查询中进行选择

时间:2017-06-17 19:31:34

标签: php laravel select

请帮帮我, 我有查询: SELECT * from(select * from products ORDER BY id DESC LIMIT 20)AS result ORDER BY discount DESC LIMIT 14

那么,如何在laravel 5中转换为查询构建器。 TKS!

2 个答案:

答案 0 :(得分:0)

尝试类似:

产品:: orderBy('id','desc') - > take(20) - > orderBy('discount','desc') - > take(14) - > get();

答案 1 :(得分:0)

使用查询构建器和导入(使用)DB,可以构建和获取所需的结果。

use DB;

$result = DB::table(
    DB::raw("(" . 
        DB::table('products')
          ->select('*')
          ->orderBy('id', 'desc')
          ->limit(20)
          ->toSql()
        . ") as result"
    )
)
->select('*')
->orderBy('discount', 'desc')
->limit(14)
->get();

table()选择要查询的表。在这种情况下,我们正在构建一个单独的SQL语句来获取表。

选择()您想要查看的列。

orderBy($ column,$ direction)其中$ column是您要订购的列的名称,$ direction是订单,desc或asc。

limit($ limit)仅将$ limit项返回到结果集。

toSql()以字符串形式返回当前的QueryBuilder SQL语句。

get()返回Collection中的数据。

还在缺少的折扣订单中添加。