【发布时间】:2017-07-12 07:03:39
【问题描述】:
我有以下 2 个表:
Cars
----
id | created_at
and
Repaired
id | cars_id | updated_at
我想显示所有汽车,由created_at desc 订购,但也由updated_at 从Repaired 数据透视表订购。修复后可以有很多特定cars_id的条目。
所以如果carA 是created_at 2017-02-20 和carB 是created_at 2016-01-10,但是为carB 修复的updated_at 在2017-02-22 上,我想在@ 之前显示carB 987654334@,因为关系“较新”。
我也不想从关系表中加载数据。
我尝试了以下方法:
$cars = $model->load(['repaired' => function($query) {
return $query->orderBy('updated_at', 'desc');
}])->orderBy('created_at', 'desc');
和
$model->join('repaired', 'repaired.cars_id', '=', 'cars.id')
->orderBy('repaired.updated_at', 'desc')
->orderBy('cars.created_at', 'desc')
->select('cars.*');
^ 此查询返回已修复表中的所有项目,即使 updated_at 字段为 NULL。而且我无法将它们分组。
【问题讨论】:
-
到目前为止你有没有尝试过?
标签: laravel sql-order-by