php - Mysql 仅原始计数
问题描述
我在我的项目中使用 PHP 和 Laravel 框架。
上面的代码完美运行
$users = User::select([
'users.id',
'users.name',
'users.company',
'users.country',
'users.city',
'users.email',
'users.created_at',
\DB::raw('SUM(reservations.dolar) as dolar'),
\DB::raw('count(reservations.confirmation) as confirmation'),
])->join('reservations','reservations.user_id','=','users.id')
->groupBy('reservations.user_id');
现在计算所有reservation.confirmation 列,但我只想计算reservation.confirmation 列值1
我如何编辑
\DB::raw('count(reservations.confirmation) as confirmation'),
这段代码
解决方案
您是否尝试在“高级连接子句”部分的https://laravel.com/docs/5.6/queries#joins中查看,您可以在 Join 函数中添加条件
$users = User::select([
'users.id',
'users.name',
'users.company',
'users.country',
'users.city',
'users.email',
'users.created_at',
\DB::raw('SUM(reservations.dolar) as dolar'),
\DB::raw('count(reservations.confirmation) as confirmation'),
])->join('reservations', function ($join) {
$join->on('reservations.user_id', '=', 'users.id')
->where('reservations.confirmation', '=', 1);
})->groupBy('reservations.user_id');
推荐阅读
- bash - 如何在 Emacs 中从另一个 Git 分支打开文件?
- javascript - 我想多拍
- python - Pyinstaller exe没有为简单的hello-world程序执行
- javascript - 即使在获取时,机器人也不会检测到自己的反应
- flutter - Flutter - 如何防止滚动超过指定限制(可滚动)
- javascript - 如何用 Js 重置选择框?
- azure-storage - 逻辑应用程序,如果尝试连接到防火墙后的存储,则为 403
- python - 数组:当两行(在不同数组中)相等时,在新列中添加一个 ID 值
- kotlin - ScanCallback:检查是否在某个时间间隔内没有找到设备
- sql - 在同一列上应用多个外键 ID 是否是一种好习惯