php - 我如何在 Laravel 4 中制定此查询

标签 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 中的 JOIN 中添加 AND 子句。
  2. 如何在 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/

相关文章:

PHPUnit 测试函数,通过引用传递值和返回值

PHP 正则表达式 : Remove words less than 3 characters

php - Laravel 加载登录 View 而不是重定向到/login

php - Laravel Eloquent 多对多查询 whereIn

PHP 无法正确显示数据库中的时间

php - 尝试从数组中获取值,drupal

java - MySQL时间戳到Java日期转换

mysql - Magento 为每个产品找到最深的类别

mysql - 将外键插入表中

node.js - Laravel 混合 : ValidationError: CSS Loader has been initialized using an options object that does not match the API schema