【发布时间】:2016-06-12 02:09:09
【问题描述】:
我想在 Laravel 中实现这一点:
SELECT * FROM products JOIN
(SELECT product_id, MIN(price) AS lowest FROM prices GROUP BY product_id) AS q1
ON products.id = q1.product_id
ORDER BY q1.lowest;
我写了这个,但显然有问题:
$products = new Product();
$products = $products->join(
Price::whereNotNull('price')->select('product_id', DB::raw('min(price) as lowest'))->groupBy('product_id'), 'products.id', '=', 'product_id'
)->orderBy('lowest')->get();
我得到的错误:
ErrorException in Grammar.php line 39:
Object of class Illuminate\Database\Eloquent\Builder could not be converted to string.
我目前正在使用join(DB::raw('(SELECT product_id, MIN(price) AS lowest FROM prices WHERE price IS NOT NULL GROUP BY product_id) AS q1'), 'products.id', '=', 'q1.product_id') 作为解决方法。只是想知道如何以雄辩的方式做到这一点?谢谢。
【问题讨论】:
-
你能告诉我们,你想给产品什么?因为我的 sql 技能很低,所以我不明白你在做什么
-
@AchrafKhouadja 我想以最低价格订购我的
products餐桌
标签: php mysql laravel eloquent