SQL-запрос к Laravel Eloquent - PullRequest
0 голосов
/ 31 мая 2019

У меня есть этот запрос ниже, и я хочу преобразовать его в Laravel Eloquent.Я пытался безуспешно.

select A.client_id, max(A.purchase_date)
from gym_client_purchases A
left Join gym_clients B on B.id = A.client_id
group by A.client_id
order By max(A.purchase_date) desc

Я пробовал это, но я получаю самую старую запись от каждого пользователя.

$this->data['expiringSubscriptions'] = Gym::select('first_name', 'last_name', 'gym_client_purchases.*')
->leftJoin('gym_clients', 'gym_clients.id', '=', 'client_id')
->groupBy('client_id')
->orderBy('gym_client_purchases.purchase_date', 'desc')
->get(); 

Может ли кто-нибудь помочь мне преобразовать мои запросы?

Спасибо.

1 Ответ

0 голосов
/ 31 мая 2019

Вы не упомянули ни одной модели, поэтому здесь используется построитель запросов.

$results = DB::table('gym_client_purchases gcp')
    ->selectRaw('gcp.client_id, MAX(gcp.purchase_date) AS max_purchase_date')
    ->leftJoin('gym_clients gc', 'gc.id', '=', 'gcp.client_id')
    ->groupBy('gcp.client_id')
    ->orderBy('max_purchase_date', 'desc');

Не запускал его - но это должно быть в основном так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...