laravel построитель запросов, получить сумму из другой таблицы по id - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть 2 таблицы в дБ, одна для пользователя и другая для оплаты

Моя цель состоит в том, чтобы пользователи таблиц имели сумму оплаты-> цену по пользователю-> id в laravel, используя построитель запросов

Мне удалось создать успешный запрос в datagrip, например:

SELECT DISTINCT users.id
      , users.name
      , users.email
      , users.address, users.is_admin
      , users.created_at
      , sum(payments.price) as total_purchase
FROM users
LEFT 
JOIN  payments
on users.id = payments.user_id
group 
    by payments.user_id, users.name
order by user_id desc;

Я уже пробовал подобный запрос в laravel примерно так:

public function getUsers(){
    $users = DB::table('users')
            ->select(DB::raw('"SELECT DISTINCT users.id, users.name, users.email, users.address, users.is_admin, users.created_at, sum(payments.price) as total_purchase'))
            ->leftJoin('payments', 'users.id', '=', 'payments.user_id')
            ->groupBy('payments.user_id', 'users.name')
            ->orderBy('user_id', 'desc')
            ->paginate(1);

    return $users;
    // return view('adminUsers', ['users' => $users]);
}

, но я получаю сообщение об ошибке:

SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 У вас есть ошибка в синтаксисе SQL;

Как я могу это сделать в laravel? и я также хочу вернуть нумерацию страниц

...