繁体   English   中英

从laravel的不同表中获取每个id的总数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM