我有这个 MYSQL 查询,需要在 Laravel4 中使用 Eloquent 来制定它。
SELECT DISTINCT Employee.Name, Employee.Id FROM Employee
LEFT JOIN Team ON Employee.Id = Team.EmployeeId AND Team.TeamId = 1;
- 如何在 Laravel 中的
JOIN
中添加AND
子句。 - 如何在 Laravel 4 中将 DISTINCT 添加到 SELECT
最佳答案
使用约定或适当的 $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
(Fluent),则将 Employee::
替换为 DB::table('Employee')->
.
注意事项:
DB::raw()
指示 Laravel 不要把 那里有背衬。- 通过将闭包传递给
join
方法,您可以向其添加更多连接条件,on()
将添加AND
条件和orOn()
将添加OR
条件。
关于php - 我如何在 Laravel 4 中制定此查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16508258/