关于多表组合数据再进行分页的问题
我现在有一个这样的需求:
- 前言:接口需要从A、B、C三张表读取数据,这三张表的数据有可能有很多(超过10条), 也有可能没有数据。然后我需要把这三个表的数据组成一个数组,转成json给前端,前端在设备上显示。
// 贴一个SQL ,其他两个类似。
$offset = ($page - 1) * 10;
$res = DB::table('goods')
->orderByDesc('created_at')
->where('parent_id', '=', $resource_type)
->whereNull('deleted_at')
->offset($offset)->limit(10)
->get();
- 需求:需要对数据进行分页。目前的方式是:已经在读取三张表里的SQL加了分页。但是组到一起肯定大于10条了(产品要求10条分一页)。然后:
$offset = ($page - 1) * 10; $data = array_slice($dataSet, $offset, 10);
- 结果:用这样的形式,发现数据总量不够。打印出来的总条数,和数据库里的总条数对不上。
- 怀疑:会不会是因为SQL 里加了分页,用对数组加了分页,所以数据有问题?
- 延展:那是不是应该从 A、B、C 三张表读数据的SQL 就不要用分页,然后只在数组这里用分页,但是如果三张表的数据量非常非常大,那肯定也不行。
问题:请大神给出解决思路。
推荐文章: