【问题标题】:How can I formulate this query in Laravel 4如何在 Laravel 4 中制定此查询
【发布时间】:2013-05-06 16:08:44
【问题描述】:

我有这个 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 的 JOIN 上添加 AND 子句。
  2. 如何在 Laravel 4 中向 SELECT 添加 DISTINCT

【问题讨论】:

    标签: php mysql laravel laravel-4 eloquent


    【解决方案1】:

    使用约定或适当的$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 条件。

    【讨论】:

    • 有没有办法查看生成的SQL?
    • @Fractaliste,而不是 ->get(); 使用 ->toSql(); 这将返回原始 SQL 查询。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多