【问题标题】:subqueries in laravel 5.4laravel 5.4 中的子查询
【发布时间】:2018-11-29 06:47:55
【问题描述】:

我怎样才能使这个查询来查询构建器 laravel 5.4?

select * from gb_employee where employee_id not in (select gb_emp_client_empid from gb_emp_client_lines where gb_emp_client_clientid =1) ;

【问题讨论】:

标签: php mysql sql laravel laravel-5.4


【解决方案1】:

为此使用左连接

$employee=DB::table('gb_employee as e')
                ->select('e.*')
                ->leftJoin('gb_emp_client_lines as el', 'e.employee_id', '=', 'el.gb_emp_client_empid')
                ->whereNull('el.gb_emp_client_empid',)
                ->get()
;

言行一致

class Employee extends Model
{

    public function client_lines()
    {
        return $this->hasMany('App\ClientLines', 'gb_emp_client_empid', 'employee_id');
    }
}

$employees = Employee::doesntHave('client_lines')->get();

【讨论】:

    【解决方案2】:

    我想我解决了。 . .

    $employees = DB::table('gb_employee')
                                ->whereNotIn('employee_id', function($query) use ($client_id)
                                {
                                    $query->select('gb_emp_client_empid')
                                          ->from('gb_emp_client_lines')
                                          ->where('gb_emp_client_clientid',$client_id);
                                })
                                ->get();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-15
      • 2017-10-07
      • 1970-01-01
      • 2017-12-28
      • 1970-01-01
      • 1970-01-01
      • 2018-10-11
      • 1970-01-01
      相关资源
      最近更新 更多