gpt4 book ai didi

mysql - 查询以从表中选择间隔

转载 作者:行者123 更新时间:2023-11-29 05:00:13 26 4
gpt4 key购买 nike

我有一个定义时间间隔的表格。

 _______________________________
| id | description | start_date |
|____|_____________|____________|
| 1 | First | NULL |
| 3 | Third | 2009-12-18 |
| 5 | Second | 2009-10-02 |
| 4 | Last | 2009-12-31 |
|____|_____________|____________|

它只存储开始日期,结束日期是下一个日期的前一天。

我想要下一个结果:

 ____________________________________________
| id | description | start_date | end_date |
|____|_____________|____________|____________|
| 1 | First | NULL | 2009-10-01 |
| 5 | Second | 2009-10-02 | 2009-12-17 |
| 3 | Third | 2009-12-18 | 2009-12-30 |
| 4 | Last | 2009-12-31 | NULL |
|____|_____________|____________|____________|

我应该如何编写此查询,因为一行包含来自其他行的值?

(我认为 MySQL 函数 DATE_SUB 可能很有用。)

最佳答案

SELECT d.id, d.description, MIN(d.start_date), MIN(d2.start_date) - INTERVAL 1
DAY AS end_date
FROM start_dates d
LEFT OUTER JOIN start_dates d2 ON ( d2.start_date > d.start_date OR d.start_date IS NULL )
GROUP BY d.id, d.description
ORDER BY d.start_date ASC

关于mysql - 查询以从表中选择间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1929917/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com