我有一个Product
有多个Variants
.
我想选择所有产品并根据第一个基础变体孩子的价格对它们进行排序。
产品A
产品B
产品C
在这种情况下,如果我想按价格订购,asc
我希望得到以下结果订购:
我当前的(不工作)查询:
Product::with(['variants' => function ($q) {
$q->orderBy('price', 'desc');
}])->orderBy('variants.price', 'desc')->get();
通过使用以下查询解决了它:
Product::join('variants', function ($join) {
$join->on('variants.product_id', '=', 'products.id');
})
->select('products.*', DB::raw("MAX(variants.price) as max_variant_price"))
->groupBy('variants.product_id')
->orderBy('max_variant_price')
->get();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句