我想在Laravel來實現這一目標:Laravel Eloquent如何加入查詢而不是表格?
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我想以最低的價格訂購我的'產品'表 – Harrison