在mysql中,如何判断一行中的date字段表示的日期至是否存在前一天的date字段的日期也在表中,同时这两行数据的device_id是相同的
时间: 2024-10-13 13:08:47 浏览: 26
MySQL命令行中给表添加一个字段(字段名、是否为空、默认值)
5星 · 资源好评率100%
在MySQL中,如果你想查询某个设备ID (`device_id`) 的行,其中某一天 (`date_field`) 的日期存在并且前一天 (`date_field - INTERVAL 1 DAY`) 也存在于表中,你可以使用自连接查询结合`EXISTS`关键字。首先假设你的表名为`your_table`,且有两个字段`date_field`和`device_id`,你可以使用如下SQL语句:
```sql
SELECT t1.*
FROM your_table t1
JOIN your_table t2 ON t1.device_id = t2.device_id AND t1.date_field = DATE_SUB(t2.date_field, INTERVAL 1 DAY)
WHERE EXISTS (
SELECT 1 FROM your_table t3
WHERE t3.device_id = t1.device_id AND t3.date_field = DATE_SUB(t1.date_field, INTERVAL 1 DAY)
);
```
这个查询会返回那些满足条件的`t1`表的行,即它们的`device_id`对应`t2`表中有前一天的日期,并且`t3`表(另一个`your_table`的实例)也有这两个连续的日期。
阅读全文