在内部加入如果条件,请在Laravel中获取细节



我尝试匹配两个列,如果基于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的列,该列存储此信息。

最新更新