MySQL 查询在 Laravel 数据库查询中转换
MySQL query convert in Laravel DB query
这是产品目录页面,我需要获取 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);
这是产品目录页面,我需要获取 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);