Laravel DB 查询中的 MySQL 查询转换

奥列格·阿夫登科

这是一个产品目录页面,我需要获取 1 张图像进行预览。

我现在的查询:

DB::select('SELECT  
                h.*
              , (SELECT link 
                 FROM media_libs m 
                 where h.id=m.have_videos_id limit 1) as link 
            FROM have_videos h')

但我需要分页。

DB::select('SELECT 
                h.*
                , (SELECT link 
                    FROM media_libs m 
                    where h.id=m.have_videos_id limit 1) as link 
            FROM have_videos h')->paginate(15)

所以自然没有任何作用

如何在 Facade DB 中转换查询?

奥列格·阿夫登科

我这样解决了我的问题

$products = DB::table('have_videos')
                ->leftJoin('media_libs', function($join) {
                    $join->on('have_videos.id', '=', 'media_libs.have_videos_id')
                        ->select('have_videos_id','link')
                        ->where('kind',1);
                })
                ->distinct()
                ->whereIn('media_libs.ID', 
           [DB::raw('select min(ID) from media_libs group by media_libs.have_videos_id')])
                ->simplePaginate(15);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章