【问题标题】:How can i make inner joins with laravel我如何使用 laravel 进行内部连接
【发布时间】:2015-02-17 00:32:37
【问题描述】:

如何使用 laravel Eloquent 数据对象模型实现以下查询?

select links.title, school_status.school_code 
     from links inner join school_status
     on links.id=school_status.link_id 
where 
    links.id!=35 and school_status.academic_year = '2014-15'

在此查询中,年份是我可以在控制器中更改的变量。如何实现?

【问题讨论】:

  • 很奇怪。很难理解..
  • DB::table(..)->join(..)->select(..)->where(..)->where(..)->get() - 不是,真的。

标签: php mysql laravel


【解决方案1】:

其实转换RAW SQL查询并不难,但是你可以试试这个:

DB::table('links')
          ->select('links.title', 'school_status.school_code')
          ->join('school_status','links.id','=','school_status.link_id')
          ->where('links.id','!=',35)
          ->where('school_status.academic_year','=','2014-15')
          ->get();

【讨论】:

    【解决方案2】:

    看看 laravel 的 belongsTo,hasMany 是 Eloquent 对象模型。

    【讨论】:

      【解决方案3】:

      如果您想使用查询生成器来完成此操作,那么下面的代码将为您工作

      DB::table('links')->join('school_status','links.id','=','school_status.link_id')->select('links.title', 'school_status.school_code')->where('links.id','!=',35)->where('school_status.academic_year','=','2014-15')->get();
      

      但如果你想先用 eloquent 来做这件事,你必须指定 b.w 表的关系

      为此阅读 Laravel 4.1 文档

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-14
        • 1970-01-01
        • 2013-11-19
        • 2014-05-31
        • 2012-11-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多