如何在Laravel 4中制定此查询

时间:2013-05-12 14:12:31

标签: php mysql laravel laravel-4 eloquent

我有这个MYSQL查询,需要在Laravel4中使用Eloquent来制定它。

SELECT DISTINCT Employee.Name, Employee.Id FROM Employee
LEFT JOIN Team ON Employee.Id = Team.EmployeeId AND Team.TeamId = 1;
  1. 如何在Laravel中的AND添加JOIN子句。
  2. 如何在Laravel 4中为SELECT添加DISTINCT

1 个答案:

答案 0 :(得分:8)

使用约定或正确的$table连接创建您的Employee模型,然后:

Employee::select(array(DB::raw('DISTINCT `Employee`.`Name`'), 'Employee.Id'))
    ->leftJoin('Team', function($join)
            {
                $join->on('Employee.id', '=', 'Team.EmployeeId')
                     ->on('Team.id', '=', DB::raw(1));
            })
    ->get();

如果您只想使用Query Builder(流利),请将Employee::替换为DB::table('Employee')->

备注

  • DB::raw()指示Laravel不要放 那里的背景。
  • 通过将关闭传递给join方法,您可以为其添加更多连接条件,on()将添加AND条件,orOn()将添加OR条件