我尝试匹配两个列,如果它是基于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中,我有一个值updated_by,值为1表示我可以匹配id列,如果它匹配,我将显示updated_by = first_name否则updated_by = null。
答案 0 :(得分:1)
要显示更新作业的用户的名称,您可以使用左连接到用户表。
$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
的列,用于存储此信息。