在MySQL的x99003359表中,F1字段表示药店,P12代表药店每次销售药品时登记的时间为datetime类型,想要知道哪些药店已经15天没有进行过登记如何查询
时间: 2024-11-05 21:26:40 浏览: 11
MySQL日期数据类型、时间类型使用总结
5星 · 资源好评率100%
在MySQL中,如果你想找出15天内未在x99003359表中的药店(即F1字段),可以使用`NOT EXISTS`或`LEFT JOIN`结合`DATEDIFF`函数来实现。以下是两种常见的查询方式:
1. 使用`NOT EXISTS`:
```sql
SELECT DISTINCT F1 FROM x99003359
WHERE DATEDIFF(CURDATE(), P12) > 15
AND NOT EXISTS (SELECT * FROM x99003359 t2 WHERE t1.F1 = t2.F1 AND DATEDIFF(CURDATE(), t2.P12) <= 15);
```
这会返回所有在过去15天内没有任何记录的药店。
2. 使用`LEFT JOIN`:
```sql
SELECT t1.F1
FROM x99003359 t1
LEFT JOIN x99003359 t2 ON t1.F1 = t2.F1 AND DATEDIFF(CURDATE(), t2.P12) <= 15
WHERE t2.P12 IS NULL OR DATEDIFF(CURDATE(), t2.P12) > 15;
```
这个查询也是基于存在匹配记录的情况来排除过去15天有更新的药店。
阅读全文