Поскольку вы помечаете Laravel, я предлагаю вам использовать Query Builder, например:
DB::table('dates')
->join('users', 'dates.user_id', '=', 'users.id')
->select(db::raw('users.name, user_id, max(date)'))
->groupBy('user_id','name')
->get();
ВЫВОД:
Illuminate\Support\Collection {#2957
all: [
{#2944
+"name": "name 1",
+"user_id": 1,
+"max": "2018-08-15",
},
{#2941
+"name": "name 2",
+"user_id": 2,
+"max": "2018-08-14",
},
],
}