MySQL多表查询实现有效分页(mysql多表查询分页)

有时候当我们需要从MySQL中查询大量数据时,使用分页功能便极为必要,本文主要介绍MySQL多表查询实现有效的分页。

## 一、思路

MySQL中实现分页的思路异常简单,只要利用`LIMIT`、`OFFSET`关键词就可以实现,例如:

“`sql

SELECT * FROM table LIMIToffset, offsetlen


即可从table中取出offset~offsetlen+offset这段记录,这种方式当只涉及到一张表时是非常有效的。但是当要查询多张表时,就需要用到其他技巧了,因为多表查询得到的结果集并不能像单表查询那么轻松实现分页。下面就来介绍一种多表查询实现有效分页的方式:

## 二、实现

1. 首先需要查询到全部的记录,这步可以实现过滤,排序以及计算合计,实现代码为:

```sql
SELECT * 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取值:

```sql
SELECT * FROM `tmp` LIMIToffset, offsetlen

## 三、总结

以上就是利用MySQL多表查询实现有效分页的方法,首先查询出全部的记录,再将查询结果存入临时表,最后利用`LIMIT`和`OFFSET`取值即可实现分页的效果。


数据运维技术 » MySQL多表查询实现有效分页(mysql多表查询分页)