2017-05-04 94 views
0

我用laravel 5.3如何在laravel雄辩上选择?

我的SQL查询是这样的:

SELECT * 
FROM (
    SELECT * 
    FROM products 
    WHERE `status` = 1 AND `stock` > 0 AND category_id = 5 
    ORDER BY updated_at DESC 
    LIMIT 4 
) AS product 
GROUP BY store_id 

我想改变它是laravel雄辩

但我仍然感到困惑

我怎样才能做它?

回答

1

在情况下,当你的查询是复杂的,你可以laravel RAW查询语法,如:

$data = DB::select(DB::raw('your query here')); 

这将触发对指定表的原始查询并返回结果集,如果有的话。

Reference

0

如果你有产品型号,您可以运行

$products = Product::where('status', 1) 
->where('stock', '>', 0) 
->where('category_id', '=', 5) 
->groupBy('store_id') 
->orderBy('updated_at', 'desc') 
->take(4) 
->get(); 

我想这应该给你相同的结果,因为你拉一切从你的派生表。

+0

我认为在他的问题点是如何获得选择内部的选择,而不是内部选择的错综复杂。 – Amarnasan

+0

@EddyTheDove,它的工作原理。但是,'order by'没有执行 –