我有这样的SQL数据:
id date_start date_end identical_value
1 1 1 a
2 1 3 b
3 2 3 c
我需要返回多个半相同的结果,但只能使用ID和新列。下面是一个例子:
id date_reference identical_value
1 1 a
2 1 b
2 2 b
2 3 b
3 2 c
3 3 c
请注意,列date_reference
从date_start
开始,到date_end
结束。
我对基本的SQL有一个很好的概念,但我并没有看到很多循环,我认为这可能是必不可少的。
我需要什么:一个很好的例子 - 不完全是答案 - 我理解是否可能,或者我需要搜索(函数,关键字...)要做的MySQL。
答案 0 :(得分:1)
创建一个包含从1到某个very large numbers的整数的表。然后,您可以加入数字表以扩展日期范围:
select yt.id
, num.Number as date_reference
, yt.identical_value
from YourTable yt
join NumberTable num
on num.Number between yt.date_start and yt.date_end