mybatis多表联查怎么分页
时间: 2023-11-02 22:01:53 浏览: 207
在 MyBatis 中进行多表联查并分页,可以通过使用嵌套查询或者使用联合查询的方式实现。以下是两种常见的方法:
1. 嵌套查询:
首先,定义好需要联查的 SQL 语句,并使用嵌套查询将其包裹到一个外层查询中。然后,在外层查询中使用 LIMIT 和 OFFSET 实现分页。
示例代码如下:
```xml
<select id="findPageResult" resultMap="resultMap">
SELECT * FROM (
SELECT t1.*, t2.*
FROM table1 t1
JOIN table2 t2 ON t1.id = t2.table1_id
-- 其他联查条件
ORDER BY t1.id
) sub
LIMIT #{pageSize} OFFSET #{offset}
</select>
```
2. 联合查询:
可以直接在 SQL 语句中使用联合查询,并使用 LIMIT 和 OFFSET 实现分页。
示例代码如下:
```xml
<select id="findPageResult" resultMap="resultMap">
SELECT t1.*, t2.*
FROM table1 t1
JOIN table2 t2 ON t1.id = t2.table1_id
-- 其他联查条件
ORDER BY t1.id
LIMIT #{pageSize} OFFSET #{offset}
</select>
```
其中,#{pageSize} 表示每页的大小,#{offset} 表示偏移量。
阅读全文