有个需求是从两个独立的表中个子取出字段,然后合并显示并且要分页。
感谢网友的思路和代码:
$m_acc = model('...');
$a = $m_acc->field('... as a,...')->where(...)->group('...')->buildSql();
$b = $m_acc->field('... as a,...')->where(...)->group('...')->buildSql();
$c = $m_acc->field('... as a,...')->where(...)->group('...')->buildSql();
$e = $m_acc->field('... as a,...')->where(...)->group('...')->buildSql();
$e = $m_acc->field('... as a,...')->where(...)->group('...')->union([$a,$b,$c,$d])->buildSql();
//到这里,已经可以把$e当做一个正常表来进行操作了,什么分页、group by、where随便用,使用"DB::table($e . ' a')"即可
$res = Db::table($e.' a')
->field('...')
->group('...')
->paginate(5);
return json($res);
实际应用是这样的:
$_content_sql = Db::name("content") ->field("content_id as id,title ,'detail' as type,views,'0' as downloadNum,create_time ") ->where(" dt_content.title like '%车%' ") ->group('content_id') ->buildSql(); $_link_sql = Db::name("link") ->field("id ,title,'info' as type,views,(base_jump_num + jump_num) as downloadNum,create_time ") ->where(" title like '%车%' ") ->union([$_content_sql])->buildSql(); $list_page = Db::table($_link_sql.' a') ->paginate($this->pageShow);
仅此,备注
如需转载请注明: 转载自26点的博客
本文链接地址: thinkphp框架中 union查询后的分页方式
转载请注明:26点的博客 » thinkphp框架中 union查询后的分页方式