按列分组的数据库中的不同的最新数据

hujrc8aj  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(485)

我正在数据库中存储数据。存储的数据如下所示

  1. vin date_traitement
  2. VF15R060H54847102 2018-04-05 00:00:00
  3. UU1HSDC9553072004 2017-08-07 15:01:00
  4. UU1HSDC9553072004 2017-08-07 14:51:00
  5. VF15R060H54847102 2017-08-07 14:57:00

在我的控制器中,我试图检索不同的vin,但获取每个vin的最新插入版本以提取到excel。目前我正在努力

  1. return Bddrenault::groupBy('vin')->orderBy('date_traitement', 'desc')
  2. ->get()
  3. ->map(function ($item, $key) {
  4. return (array) $item;
  5. })
  6. ->all();

问题是,这是返回的excel文件为空,我试图得到这个

  1. vin date_traitement
  2. VF15R060H54847102 2018-04-05 00:00:00
  3. UU1HSDC9553072004 2017-08-07 15:01:00

我怎样才能做到这一点?
谢谢

zzzyeukh

zzzyeukh1#

使用此选项:

  1. $join = Bddrenault::select('vin')
  2. ->selectRaw('MAX(`date_traitement`) `date_traitement`')
  3. ->groupBy('vin');
  4. $sql = '(' . $join->toSql() . ') as `voiture`';
  5. Bddrenault::select('id', 'bd.vin', 'bd.date_traitement')
  6. ->from('bddrenaults as bd')
  7. ->join(DB::raw($sql), function($join) {
  8. $join->on('bd.vin', 'voiture.vin')
  9. ->on('bd.date_traitement', 'voiture.date_traitement');
  10. })->get();

相关问题