Sal*_*lar 3 mysql gaps-and-islands
我尝试了几个这样的主题:如何使用SQL查找丢失的数据行?在这里,但我不能让它在我的情况下工作.
我有一个以postsMySQL 命名的表,我每天都会在其中保存用户日记.有时用户忘记写一天的帖子,我想让他们以后再提交.所以数据库结构如下:
date userid
2011-10-01 1
2011-10-02 1
(missing)
2011-10-04 1
2011-10-05 1
(missing)
2011-10-07 1
Run Code Online (Sandbox Code Playgroud)
所以我想在这个缺失行表中向用户显示缺少日期的下拉列表,这样他就可以选择他想要提交帖子的日期.
我怎样才能做到这一点?谢谢.
查找缺少日期的最简单方法是使用日历表.我发布了代码来创建和填充PostgreSQL的日历表 ; 你应该能够毫无困难地适应它.
使用日历表,您的查询非常简单,易于理解.要查找2011年10月的缺失日期,您可以使用这些内容.(猜猜你的"帖子"表.)
select c.cal_date
from calendar c
left join posts p on (c.cal_date = p.date)
where p.date is null
and c.cal_date between '2011-10-01' and '2011-10-31'
and p.userid = 1
order by c.cal_date
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4591 次 |
| 最近记录: |