使用LambdaQueryWrapper 写一个多表查询的例子
时间: 2023-10-14 10:23:49 浏览: 96
你应该知道的这些Mybatis-Plus使用技巧(小结)
当然可以,LambdaQueryWrapper可以很方便地实现多表查询。以下是一个例子:
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.select(User.class, info -> !info.getColumn().equals("password")) // 选择除了密码以外的所有列
.nested(i -> i.eq(User::getRole, "admin").or().eq(User::getRole, "superadmin")) // 嵌套查询,选择角色为admin或superadmin的用户
.inSql(User::getId, "SELECT user_id FROM user_address WHERE province = '广东'") // IN子查询,选择居住在广东的用户
.orderByDesc(User::getCreateTime) // 按创建时间倒序排序
.last("LIMIT 10"); // 最后加上LIMIT 10,只返回前10条记录
List<User> userList = userMapper.selectList(wrapper);
```
这个例子中,我们使用LambdaQueryWrapper从user和user_address两张表中查询符合条件的用户信息,并按创建时间倒序排列,只返回前10条记录。其中,我们用到了LambdaQueryWrapper的一些高级特性,比如选择需要的列、嵌套查询、IN子查询等。
阅读全文