laravel 子查询的问题

要拼成如下语句:

select field1,field2,field3  from table1  
  
inner join  
  
(select id from table1 where field4=$field4 limit 100, 20) as temp using(id)

laravel 改怎么写?···尝试了许多都不行

感谢~

阅读 5.4k
2 个回答

直接用Laravel的ORM是无法实现的,至少是目前无法实现,所以这种需求还是乖乖用DB类提供的原生SQL方式吧,比如用DB::select等。

也可以参考一下这个Laravel 5. Using the USING operator,跟你一样的需求。

这里有一个pull请求,为Laravel添加对using的支持,不过貌似因为没有添加相应的单元测试被拒了。

新手上路,请多包涵

$courses = Orgcourse::where('classify','=',$num)->join('collections','orgcourses.id','=','collections.cid')->select(DB::raw('*,orgcourses.id as o_id,collections.id as c_id'))->orderBy('collections.created_at','desc')->paginate(2);
类似于这种,能查出来,但是有点繁琐好像,关联查询

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题