Laravel Eloquent - 根据子关系属性对父项进行排序

保罗

我有一个Product有多个Variants.

我想选择所有产品并根据第一个基础变体孩子的价格对它们进行排序。

产品A

  • 变体 A1(价格:3 美元)
  • 变体 A2(价格:3 美元)

产品B

  • 变体 B1(价格:2 美元)
  • 变体 B2(价格:2 美元)

产品C

  • 变体 C1(价格:4 美元)
  • 变体 C2(价格:4 美元)

在这种情况下,如果我想按价格订购,asc我希望得到以下结果订购:

  • 产品B
  • 产品A
  • 产品C

我当前的(不工作)查询:

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel Eloquent 关系

来自分类Dev

Laravel eloquent 模型关系

来自分类Dev

Laravel Eloquent,排序关系使其成为树

来自分类Dev

Laravel Eloquent,追加与关系同名的属性

来自分类Dev

Laravel Eloquent 模型之间的关系

来自分类Dev

Laravel 3 表 Eloquent:关系

来自分类Dev

Laravel Eloquent 连接表关系

来自分类Dev

Laravel Eloquent "with" 返回与 limit 的关系

来自分类Dev

获得 Laravel eloquent 模型关系

来自分类Dev

Laravel Eloquent 按元素对组进行排序

来自分类Dev

进行子查询以使用Laravel Eloquent检索属性的答案

来自分类Dev

Laravel Eloquent模型的临时属性

来自分类Dev

Laravel Eloquent-动态属性

来自分类Dev

laravel 5.6 Eloquent:eloquent 关系模型创建问题

来自分类Dev

Laravel Eloquent-根据父表的字段有条件地渴望加载关系

来自分类Dev

在Laravel Eloquent中查询关系内的关系

来自分类Dev

Laravel Eloquent 一 --> 多关系分配父级

来自分类Dev

Laravel Eloquent-关系上的firstOrCreate()

来自分类Dev

Laravel Eloquent-关于Morph关系的sync()

来自分类Dev

Laravel Eloquent获取JSON关系嵌套

来自分类Dev

如何使用Laravel Eloquent返回多个关系?

来自分类Dev

Laravel Eloquent:如何定义这种关系?

来自分类Dev

Laravel Eloquent具有很多关系

来自分类Dev

在Laravel Eloquent中获取和过滤关系

来自分类Dev

Laravel Eloquent:渴望加载多个嵌套关系

来自分类Dev

Laravel Eloquent的表命名约定hasManyThrough关系

来自分类Dev

Laravel Eloquent-如何获得嵌套关系

来自分类Dev

Laravel Eloquent对某项关系有多种看法

来自分类Dev

与Eloquent ORM / Laravel写入hasMany关系