Mysql 查询以获取表中某行更改的开始和结束日期
我有一张这样的桌子:Mysql 查询以获取表中某行更改的开始和结束日期,mysql,sql,Mysql,Sql,我有一张这样的桌子: id … value … date_added 1 … value1 … some date 1 … value2 … some date 1 … value3 … some date 1 … value4 … some date 2 … value5 … some date 2 … value6 … some date id … value … date_st
id … value … date_added
1 … value1 … some date
1 … value2 … some date
1 … value3 … some date
1 … value4 … some date
2 … value5 … some date
2 … value6 … some date
id … value … date_start date_end
1 … value1 … some date some date
1 … value2 … some date some date
1 … value3 … some date some date
1 … value4 … some date some date
2 … value5 … some date some date
2 … value6 … some date
我想要这样的东西:
id … value … date_added
1 … value1 … some date
1 … value2 … some date
1 … value3 … some date
1 … value4 … some date
2 … value5 … some date
2 … value6 … some date
id … value … date_start date_end
1 … value1 … some date some date
1 … value2 … some date some date
1 … value3 … some date some date
1 … value4 … some date some date
2 … value5 … some date some date
2 … value6 … some date
因此,需要一个查询来获取每一行被添加到表中的日期以及它被更改的日期
你是怎么做到的?非常感谢。您可以查询结束日期作为当前行之后的第一个更改日期:
select id
, value
, date_start
, (
select date_start
from YourTable yt2
where yt1.id = yt2.id
and yt1.date_start < yt2.date_start
order by
yt2.date_start
limit 1
) as date_end
from YourTable yt1
获取每一行添加到表中的日期以及更改的日期。您可以使用时间戳字段进行此操作。搜索MySQL文档。您的id列是唯一的吗?主键在哪里?id列是外键,它不是唯一的一对多关系。