MySQL多表查询实现有效分页(mysql多表查询分页)
有时候当我们需要从MySQL中查询大量数据时,使用分页功能便极为必要,本文主要介绍MySQL多表查询实现有效的分页。
## 一、思路
MySQL中实现分页的思路异常简单,只要利用`LIMIT`、`OFFSET`关键词就可以实现,例如:
“`sql
SELECT * FROM table LIMIToffset, offsetlen
即可从table中取出offset~offsetlen+offset这段记录,这种方式当只涉及到一张表时是非常有效的。但是当要查询多张表时,就需要用到其他技巧了,因为多表查询得到的结果集并不能像单表查询那么轻松实现分页。下面就来介绍一种多表查询实现有效分页的方式:
## 二、实现
1. 首先需要查询到全部的记录,这步可以实现过滤,排序以及计算合计,实现代码为:
```sqlSELECT * FROM table1 LEFT JOIN table2 on table1.a = table2.a ORDER BY table1.c DESC
2. 然后把上面结果存在一个临时表中:
“`sql
CREATE TEMPORARY TABLE `tmp` (
SELECT * FROM table1 LEFT JOIN table2 on table1.a = table2.a ORDER BY table1.c DESC
)
3. 最后根据 LIMIT和OFFSET取值:
```sqlSELECT * FROM `tmp` LIMIToffset, offsetlen
## 三、总结
以上就是利用MySQL多表查询实现有效分页的方法,首先查询出全部的记录,再将查询结果存入临时表,最后利用`LIMIT`和`OFFSET`取值即可实现分页的效果。