mysql - laravel 查询生成器,通过 id 从其他表中获取总和
问题描述
我在数据库中有 2 个表,一个用于用户,另一个用于付款
我的目标是使用查询生成器在 laravel 中让表用户具有支付总和 -> 用户 -> id 的总和
我设法在 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中做到这一点?我也想用它返回分页
解决方案
推荐阅读
- c++ - C++ 名称解析问题
- javascript - android中KeyboardEvent的键码无法识别?
- r - 未找到 R 中 rpart() 的保留函数
- html - Chrome 输入:-internal-autofill-selected 属性在自动填充时隐藏我的背景图像
- postgresql - PostgreSQL 9.6 理解 wal 文件
- c# - 控制台应用程序执行顺序和延迟时间中的多个 IHostedService
- vba - Word 中的 VBA、Active X 和 Legacy Tools 替代方案
- azure-devops - 自定义扩展找不到 VstsTaskSdk.psd1
- android - How fix My android app not working on android 9?
- plsql - MariaDB pl/sql 填充日期从“1990-01-01”到“2000-12-31”的表