我有表格,其中包含personIds
,开始日期和结束日期。
我需要选择每个personId-date
对,但日期在两个列指定的范围内。
例如:
personId | startDate | endDate
1 | 2018-05-10 | 2018-05-13
将返回
personId | date
1 | 2018-05-10
1 | 2018-05-11
1 | 2018-05-12
1 | 2018-05-13
答案 0 :(得分:0)
此处的一个选项是创建一个包含2018年所有日期(包括其他年份)的日历表。然后,只需将此日历表内连接到给定人员的记录。
SELECT c.date
FROM calendar c
INNER JOIN yourTable t
ON c.date BETWEEN t.startDate AND t.endDate;
See here有关在MySQL中创建日历表的一些好选项。