【发布时间】:2021-05-16 07:27:44
【问题描述】:
我有一些表在我的数据库中引用用户表。所以我想在不同的表中获取指定一周内发生的活动记录。
当我尝试使用where子句时,显示星期是undefined,如下所示。
$week = 6;
$users = User::leftJoin(DB::raw('(SELECT user_id, week_number as week, SUM(amount) as performance_amount FROM performances GROUP BY week_number) AS p'), function ($join) {
$join->on('p.user_id', '=', 'users.id')->where('p.week', $week);
})
->leftJoin(DB::raw('(SELECT user_id, week_number as week, SUM(amount) as agent_amount FROM agents GROUP BY week_number) AS ag'), function ($join) {
$join->on('ag.user_id', '=', 'users.id')->where('ag.week', $week);
})
->leftJoin(DB::raw('(SELECT user_id, week_number as week, SUM(amount) as accumulative_amount FROM accumulatives GROUP BY week_number) AS ac'), function ($join) {
$join->on('ac.user_id', '=', 'users.id')->where('ac.week', $week);
})
->get();
当我硬编码周值时,它返回预期值,但其余记录的周值返回 null,如下所示。
【问题讨论】:
标签: php sql laravel laravel-query-builder