[英]get total count in each ids from different table in laravel
我想从另一个名为分配作业的表中获取每个ID的总数。 我将用户数据保存到我的用户表中,并将3个作业添加到具有用户ID的分配作业表中。
但是现在我想从分配作业表中获得总添加的作业,其中我的用户表中的用户ID一次。
我写了这个功能
$assignjob = DB::table('users')
->join('assign_jobs', 'users.user_id', '=', 'assign_jobs.user_id')
->get()
->count();
但这显示我的分配作业表中的总数。 但我想获得每个用户ID的不同计数。
我想用此分配作业总计数值分配不同的颜色行。
谁能帮我。
用户表:
|---------------------|------------------|
| user_id | name |
|---------------------|------------------|
| 123 | john |
|---------------------|------------------|
| 234 | peter |
|---------------------|------------------|
分配工作表:
|---------------------|------------------|
| id | user_id |
|---------------------|------------------|
| 1 | 123 |
|---------------------|------------------|
| 2 | 123 |
|---------------------|------------------|
| 3 | 234 |
|---------------------|------------------|
| 4 | 234 |
|---------------------|------------------|
选择不同的用户ID进入其中以获取每个用户的数量
您需要为用户的id
列使用GROUP BY
子句,并将COUNT()
添加到您的选择中。 尝试:
DB::table('users')
->select('users.user_id', DB::raw('COUNT(assign_jobs.user_id) AS jobs_count'))
->join('assign_jobs', 'users.user_id', '=', 'assign_jobs.user_id')
->groupBy('users.user_id')
->get();
尝试这个:
添加以下与用户模型的关系:
public function assignJobs()
{
return $this->hasMany(AssignJob::class, 'user_id', 'user_id');
}
并在控制器中:
User::withCount('assignJobs')->get();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.