mybatisplus多表关联查询sql
时间: 2023-08-27 18:21:10 浏览: 100
Mybatis多对多关联查询
在MyBatis-Plus中进行多表关联查询可以使用wrapper进行操作。首先创建一个QueryWrapper对象,然后通过eq()方法指定关联的条件,例如eq("user.id", 1L)。接下来使用selectMaps()方法执行关联查询操作,并传入QueryWrapper对象作为参数,最后将结果存储在List<Map<String, Object>>对象中。以下是一个示例代码:
```
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user.id", 1L);
List<Map<String, Object>> list = userMapper.selectMaps(queryWrapper);
```
需要注意的是,联表查询时,selectJoinList()方法的第一个参数是查询结果集映射的实体类,在示例中是ProductVO.class。可以使用select()方法指定需要查询的字段,使用selectAs()方法进行字段别名设置。使用leftJoin()方法可以进行多表联接操作,指定关联的表和关系字段。最后,通过调用selectJoinList()方法执行联表查询操作。以下是一个示例代码:
```java
List<ProductVO> two = productMapper.selectJoinList(ProductVO.class, new MPJLambdaWrapper<Product>()
.select(Product::getCode, Product::getName)
.selectAs(Factory::getCode, ProductVO::getFactoryCode)
.selectAs(Factory::getName, ProductVO::getFactoryName)
.leftJoin(Factory.class, Factory::getCode, Product::getFactoryCode)
);
```
在上述代码中,使用select()方法指定了Product表的code和name字段,使用selectAs()方法进行字段别名设置,将Factory表的code字段映射到ProductVO类的factoryCode字段,将Factory表的name字段映射到ProductVO类的factoryName字段。使用leftJoin()方法进行Product表和Factory表的联接操作,指定关联字段。最后,将联表查询的结果存储在List<ProductVO>对象中。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [Mybatis-Plus多表关联查询的使用](https://blog.csdn.net/weixin_47261870/article/details/127156740)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [MyBatis-Plus多表关联查询](https://blog.csdn.net/weixin_70506521/article/details/130722631)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文