user12508960
user12508960

Reputation:

How to get last record of duplicate data?

I have table A ( id - message - user_id ), I need to say if any user_id duplicated in table just bring last one that user had added:

My controller code (my wrong shut):

$duplicate = VerfiyRequest::where('user_id', '>' , 1)->first();

$VerfiyRequests = VerfiyRequest::latest()->get();

return view('backend.VerfiyRequest.index' , compact('VerfiyRequests'));

Upvotes: 1

Views: 1113

Answers (1)

Hafez Divandari
Hafez Divandari

Reputation: 9029

Use this to get the last record of each user by the latest id (incrementing primary key):

VerfiyRequest::whereIn('id', function ($query) {
    $query
        ->from('verify_requests')
        ->select(DB::raw('MAX(id) as id'))
        ->groupBy('user_id');
})->get();

Explanation: the MAX(id) as id selects latest id of each user group, so the inner query returns latest record of each user.

Upvotes: 1

Related Questions