返回具有特定差异的多个半相同行

时间:2011-08-06 16:49:47

标签: mysql sql

我有这样的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_referencedate_start开始,到date_end结束。

我对基本的SQL有一个很好的概念,但我并没有看到很多循环,我认为这可能是必不可少的。

我需要什么:一个很好的例子 - 不完全是答案 - 我理解是否可能,或者我需要搜索(函数,关键字...)要做的MySQL。

1 个答案:

答案 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