Как я могу сформулировать этот запрос в Laravel 4

У меня есть этот запрос MYSQL и требуют сформулировать это с помощью Eloquent в Laravel4.

SELECT DISTINCT Employee.Name, Employee.Id FROM Employee
LEFT JOIN Team ON Employee.Id = Team.EmployeeId AND Team.TeamId = 1;
  1. Как я могу добавить AND пункт о JOIN в Ларавеле.
  2. Как я могу добавить DISTINCT в SELECT в Laravel 4

1 ответ

Решение

Создайте свою модель Employee с условием или надлежащим $table соединение, а затем:

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() поручает Ларавелу не ставить туда спины.
  • Передав закрытие join методы, к которым вы можете добавить больше условий соединения, on() добавлю AND состояние и orOn() добавлю OR состояние.
Другие вопросы по тегам