使用LambdaQueryWrapper 写一个多表查询的例子 不要使用insql
时间: 2023-10-24 14:07:45 浏览: 44
好的,这是一个比较简单的LambdaQueryWrapper多表查询的例子:
```
LambdaQueryWrapper<User> userWrapper = new LambdaQueryWrapper<>();
userWrapper.eq(User::getStatus, 1);
LambdaQueryWrapper<Order> orderWrapper = new LambdaQueryWrapper<>();
orderWrapper.eq(Order::getType, 2);
List<Order> orders = orderMapper.selectList(orderWrapper
.inSql("user_id", "SELECT id FROM user WHERE status = 1"));
List<User> users = userMapper.selectList(userWrapper
.inSql("id", "SELECT DISTINCT user_id FROM order WHERE type = 2"));
for (Order order : orders) {
for (User user : users) {
if (user.getId().equals(order.getUserId())) {
order.setUser(user);
break;
}
}
}
```
这是一个查询订单和用户表的例子,其中用户表和订单表是通过用户ID关联起来的。我们使用两个LambdaQueryWrapper对象来分别查询用户和订单表,并在每个对象中使用inSql方法来指定查询条件。最后通过两个for循环来将订单和用户关联起来。