使用 SELECT order_id,user_name,user_idcard,user_phone,is_delete,in_time,out_time,update_time FROM sys_customer_order WHERE (is_delete = ? AND order_id IN (SELECT id FROM sys_order WHERE (homestay_id = ? AND TO_DAYS(in_time) = TO_DAYS('2023-06-22')))) 使用两个LambdaQueryWrapper构建两个查询条件 内部查询条件和外部查询条件改写
时间: 2024-02-23 14:58:05 浏览: 29
好的,根据您的要求,我来解答您的问题。
首先,您的问题是关于SQL语句的,这里提供一下对应的LambdaQueryWrapper写法。假设您使用的是MyBatis-Plus框架。
1. 使用两个LambdaQueryWrapper构建两个查询条件
```java
LambdaQueryWrapper<SysCustomerOrder> innerWrapper = Wrappers.<SysCustomerOrder>lambdaQuery()
.inSql(SysCustomerOrder::getOrderId, "SELECT id FROM sys_order WHERE (homestay_id = " + homestayId + " AND TO_DAYS(in_time) = TO_DAYS('" + date + "'))");
LambdaQueryWrapper<SysCustomerOrder> outerWrapper = Wrappers.<SysCustomerOrder>lambdaQuery()
.eq(SysCustomerOrder::getIsDelete, isDelete)
.apply(StringUtils.isNotBlank(keyword), "(user_name LIKE '%" + keyword + "%' OR user_idcard LIKE '%" + keyword + "%' OR user_phone LIKE '%" + keyword + "%')"); // 可选条件
```
以上代码中,`innerWrapper`用于构建内部查询条件,使用了`inSql`方法实现子查询,子查询中使用了变量`homestayId`和`date`,您需要将其替换为实际的值。
`outerWrapper`用于构建外部查询条件,使用了`eq`方法实现等于条件,`apply`方法用于构建可选条件,其中`StringUtils.isNotBlank(keyword)`用于判断`keyword`是否为空。
2. 内部查询条件和外部查询条件改写
根据您的SQL语句,将其改写为以下形式:
```sql
SELECT order_id,user_name,user_idcard,user_phone,is_delete,in_time,out_time,update_time
FROM sys_customer_order
WHERE is_delete = ?
AND order_id IN (
SELECT id
FROM sys_order
WHERE homestay_id = ?
AND TO_DAYS(in_time) = TO_DAYS(?)
)
```
使用LambdaQueryWrapper实现如下:
```java
LambdaQueryWrapper<SysCustomerOrder> wrapper = Wrappers.<SysCustomerOrder>lambdaQuery()
.eq(SysCustomerOrder::getIsDelete, isDelete)
.inSql(SysCustomerOrder::getOrderId, "SELECT id FROM sys_order WHERE (homestay_id = " + homestayId + " AND TO_DAYS(in_time) = TO_DAYS('" + date + "'))");
```
将以上代码中的变量`isDelete`、`homestayId`和`date`替换为实际的值即可。
希望以上解答能够帮到您,如果还有任何问题,请随时提出。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)