【发布时间】:2010-09-27 13:43:23
【问题描述】:
如何将一个日期数稀疏的表与另一个日期数详尽的表连接起来,以使稀疏日期之间的间隔采用前一个稀疏日期的值?
示例:
PRICE table (sparse dates):
date itemid price
2008-12-04 1 $1
2008-12-11 1 $3
2008-12-15 1 $7
VOLUME table (exhaustive dates):
date itemid volume_amt
2008-12-04 1 12345
2008-12-05 1 23456
2008-12-08 1 34567
2008-12-09 1 ...
2008-12-10 1
2008-12-11 1
2008-12-12 1
2008-12-15 1
2008-12-16 1
2008-12-17 1
2008-12-18 1
想要的结果:
date price volume_amt
2008-12-04 $1 12345
2008-12-05 $1 23456
2008-12-08 $1 34567
2008-12-09 $1 ...
2008-12-10 $1
2008-12-11 $3
2008-12-12 $3
2008-12-15 $7
2008-12-16 $7
2008-12-17 $7
2008-12-18 $7
更新:
一些人建议了一个相关的子查询来实现所需的结果。 (相关子查询 = 包含对外部查询的引用的子查询。)
这会起作用;但是,我应该注意到我使用的平台是 MySQL,其相关子查询的优化很差。有什么方法可以在不使用相关子查询的情况下做到这一点?
【问题讨论】:
-
你可以编辑标题或删除并重新开始吗?
-
看起来是别人做的。是的,没注意那里。
-
需要输入的列名和所需的输出。现在这个问题的措辞相当模棱两可
-
添加了列名,所需的输出已经存在