如何在 laravel eloquent 上的 select 中制作 select?
How can I make select in select on laravel eloquent?
我用laravel 5.3
我的 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
我想改成laraveleloquent
但我还是一头雾水
我该怎么做?
如果您的查询过于复杂,您可以 laravel RAW
查询语法,例如:
$data = DB::select(DB::raw('your query here'));
它将在指定的 table 和 returns 结果集(如果有)上触发您的原始查询。
如果您有产品型号,可以运行
$products = Product::where('status', 1)
->where('stock', '>', 0)
->where('category_id', '=', 5)
->groupBy('store_id')
->orderBy('updated_at', 'desc')
->take(4)
->get();
我认为这应该会给你相同的结果,因为你从派生的 table 中提取了所有内容。
我用laravel 5.3
我的 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
我想改成laraveleloquent
但我还是一头雾水
我该怎么做?
如果您的查询过于复杂,您可以 laravel RAW
查询语法,例如:
$data = DB::select(DB::raw('your query here'));
它将在指定的 table 和 returns 结果集(如果有)上触发您的原始查询。
如果您有产品型号,可以运行
$products = Product::where('status', 1)
->where('stock', '>', 0)
->where('category_id', '=', 5)
->groupBy('store_id')
->orderBy('updated_at', 'desc')
->take(4)
->get();
我认为这应该会给你相同的结果,因为你从派生的 table 中提取了所有内容。