我尝试匹配两个列,如果基于ID匹配,我将把用户名分配给该匹配的列。但是内部加入我不能在加入表的条件下做。
$list = DB::table('job')
->join('users', 'users.id', '=', 'job.created_by')
->select('job.*','users.first_name as created_by','users.first_name')
->where('job.enterprise_id', $user->id)
->get();
在我的json中,我有一个值更新了,value 1表示我可以与ID列匹配,如果它匹配我将显示updateed_by = first_name否则repotated_by = null = null。
显示更新工作的用户名称,您可以使用左JOIN到用户表。
$list = DB::table('job as j')
->join('users as u1', 'u1.id', '=', 'j.created_by')
->leftJoin('users as u2', 'j.updated_by' , '=', 'u2.id')
->select('j.*','u1.first_name as created_by','u2.first_name as updated_by')
->where('j.enterprise_id', $user->id)
->get();
如果更新了作业,则u2.first_name
将返回使用用户的名称,如果不更新作业,则更新该作业的用户,您将对u2.first_name
具有零值。另外,我假设您的工作表有一个名为updated_by
的列,该列存储此信息。