Mysql 如何查找连续行,即员工是';缺席';?

Mysql 如何查找连续行,即员工是';缺席';?,mysql,sql,Mysql,Sql,我有一个表名employee。它有4列:id、名称、状态和当前日期 date_present列包含员工出席和缺席的所有日期。我需要写一个查询,看看是否有员工连续缺勤超过3天 id | name | statuse | date_presnet 1 | khan | present | 2016-12-1 2 | jan | present | 2016-12-2 3 | Kiran| absent | 2016-12-3 4 | jan | absent | 2016-12-4

我有一个表名employee。它有4列:id、名称、状态和当前日期

date_present列包含员工出席和缺席的所有日期。我需要写一个查询,看看是否有员工连续缺勤超过3天

id | name | statuse | date_presnet
1  | khan | present | 2016-12-1
2  | jan  | present | 2016-12-2
3  | Kiran| absent  | 2016-12-3
4  | jan  | absent  | 2016-12-4
4  | jan  | absent  | 2016-12-5
4  | jan  | absent  | 2016-12-6
MySQL(或任何数据库)中的一种方法是使用
join
将记录连接到下一个日期:

select t.*
from t join
     t t2
     on t2.id = t1.id and
        t2.date = date_add(t1.date, interval 1 day) and
        t2.status = 'absent' and t.status = 'absent' join
     t t3
     on t3.id = t1.id and
        t3.date = date_add(t1.date, interval 2 day) and
        t3.status = 'absent' ;

“我需要它紧急”是问题的一部分吗?我想建议你用PHP或编程语言检查连续3次缺席,而不是用MySQL查询。也许输入更快会有助于解决问题的紧急性。这是OP的第二篇文章。否决票和结束票并不受欢迎。是的,我承认“紧急”部分有点冒昧(所以我删除了它)。OP可以显示一个示例查询,但大多数问题都没有。对OP进行教育确实比投票否决或投票结束要好。这个问题本身是合理的。@GordonLinoff你可能还记得投票的原因。如果您将鼠标悬停在箭头上方,则表示“它显示了研究成果、有用且清晰”。这并不意味着“我只是回答了它,我想支持它”,就像你经常声称的那样。当我们其他人试图保持堆栈清洁时。值得一提的是,我没有投反对票,也没有投反对票。但我每天接近40到50英镑。