LambdaQueryWrapper 的连表查询怎么用?
时间: 2024-10-09 17:12:15 浏览: 34
支持连表查询的mybatis-plus
5星 · 资源好评率100%
LambdaQueryWrapper 是阿里巴巴 MyBatis Plus 中的一个高级 API,它提供了一种简洁的方式来编写 SQL 查询,尤其是在处理复杂的关联查询时。连表查询通常涉及到在一个 SQL 语句中同时从两个或更多的表获取数据,这在 LambdaQueryWrapper 中可以利用 `query()` 方法结合链式操作来实现。
例如,假设我们有两个关联的实体 User 和 Address,想要查询所有用户及其对应的地址信息,可以这样做:
```java
List<User> usersWithAddresses = UserExtension.selectUsers()
.join("INNER JOIN", Address::getUser, User::getId)
.select();
```
在这个例子中,`UserExtension.selectUsers().join()` 方法用于开始查询,`INNER JOIN` 表示我们要做内连接操作,`Address::getUser` 和 `User::getId` 分别表示外键关系,然后 `.select()` 返回的是包含关联数据的结果列表。
如果你想根据特定条件进行联查,可以在 `.join()` 后添加查询条件:
```java
List<User> usersWithAddressesInCity = UserExtension.selectUsers()
.join("INNER JOIN", address -> address.getCity().equals("New York"), User::getId)
.select();
```
阅读全文