spring boot mybatis puls 两个表根据id拼在一起,并分页
时间: 2024-05-14 22:19:14 浏览: 194
假设你有两个表 `table1` 和 `table2`,它们都有一个名为 `id` 的列,你可以使用 MyBatis-Plus 的 `Wrapper` 来拼接两个表。以下是示例代码:
```java
// 定义查询条件
QueryWrapper<Table1> wrapper = new QueryWrapper<>();
wrapper.eq("id", 1);
// 将两个表拼接
wrapper.inSql("id", "select id from table2 where id = 1");
// 分页查询
Page<Table1> page = new Page<>(1, 10);
IPage<Table1> result = table1Mapper.selectPage(page, wrapper);
// 获取查询结果
List<Table1> records = result.getRecords();
long total = result.getTotal();
```
在上面的代码中,我们首先定义了一个 `QueryWrapper` 对象来指定查询条件。然后,我们使用 `inSql` 方法将 `table1` 和 `table2` 拼接在一起,只查询 `id` 等于 1 的记录。最后,我们使用 `selectPage` 方法进行分页查询,并将结果存储在一个 `Page` 对象中。
需要注意的是,在 `inSql` 中,我们使用了一个子查询来查询 `table2` 表中 `id` 等于 1 的记录。这个子查询返回的是一个包含符合条件的 `id` 值的 SQL 字符串,这个字符串会被拼接到原始的 SQL 语句中,从而实现了两个表的拼接。
阅读全文