SELECT * FROM table_name WHERE lot_id IN (SELECT lot_id FROM table_name WHERE print_time BETWEEN '2023-05-18 00:00:00' AND '2023-05-18 15:28:28') 请修改为用exist的方式
时间: 2024-03-15 15:43:56 浏览: 56
SELECT 的另类用法
可以改写成以下 SQL 语句:
```
SELECT *
FROM table_name t1
WHERE EXISTS (
SELECT 1
FROM table_name t2
WHERE t2.lot_id = t1.lot_id
AND t2.print_time BETWEEN '2023-05-18 00:00:00' AND '2023-05-18 15:28:28'
)
```
这个语句使用了 EXISTS 子查询,它会在执行时判断子查询是否返回了至少一行结果,如果是,则返回主查询中的行。这个语句的主查询是对表 `table_name` 进行筛选,找出 `lot_id` 在子查询结果集中的所有行。
子查询中的条件和原来的语句一致,它会返回所有 `print_time` 在指定时间范围内的 `lot_id`。主查询中的 `EXISTS` 子句使用子查询中的 `lot_id` 和主查询的 `lot_id` 进行匹配,如果匹配成功则返回主查询中的行。
阅读全文