请有人帮助我进行MYSQL Select查询,其中在给定示例中,我以两个不同的时间间隔(01/01/2019和02/01/2019)更新表,并且我应该能够从中追踪丢失的更新以前的上传(即2019年1月1日)
S.No Emp Name Update Date
1 Test 1 01/01/19
2 Test 2 01/01/19
3 Test 3 01/01/19
4 Test 1 02/01/19
5 Test 2 02/01/19
在上面的示例中,我期望查询结果为
3, Test 3, 01/01/2019
要运行MYSQL查询语法吗?
答案 0 :(得分:0)
您可以使用NOT EXISTS查找缺少更新的行:
select t.*
from tablename
where
t.updatedate = '2019-01-01'
and not exists (
select 1 from tablename
where empname = t.empname and date = '2019-01-02'
)
答案 1 :(得分:0)
如果您要在一天中更新而不是第二天更新的行:
select t.*
from t
where not exists (select 1
from t t2
where t2.empname = t.empname and
t2.date = t.date + interval 1 day
) and
exists (select 1
from t t2
where t2.date = t.date + interval 1 day
);
第一个子句检查empname
在第二天是否不存在。第二步检查是否确实存在某些东西,以防止在最近一天返回所有内容。
您可以添加一个where
子句以将外部查询限制为感兴趣的一天或几天。