【发布时间】:2015-10-18 01:55:30
【问题描述】:
我一直在环顾四周并试图让它发挥作用,但我似乎无法得到它。我有 2 张桌子:
TABLE: products
| id | name | some more values |
|----|-----------|------------------|
| 1 | Product 1 | Value 1 |
| 2 | Product 2 | Value 2 |
| 3 | Product 3 | Value 3 |
TABLE: value
| pid | value | stamp |
|-----|-----------|------------------|
| 1 | 7 | 2015-07-11 |
| 2 | 4 | 2015-07-11 |
| 3 | 8 | 2015-07-11 |
| 1 | 9 | 2015-07-21 |
| 2 | 4 | 2015-07-21 |
| 3 | 6 | 2015-07-21 |
第一个表只是有一个产品列表,第二个表有每个产品的值(按 pid),时间戳是值。 注意:时间戳不是每天,也不是均匀分布的。
我想要的是这样的结果表:
| id | name | some more values | value now | value last month |
|----|-----------|------------------|-----------|------------------|
| 1 | Product 1 | Value 1 | 9 | 7 |
| 2 | Product 2 | Value 2 | 4 | 4 |
| 3 | Product 3 | Value 3 | 6 | 8 |
其中“value now”是最新时间戳的值,“value lastmonth”是最接近最新时间戳的时间戳值 - 30 天。请记住,-30 天可能没有特定的时间戳,查询需要找到最接近的时间戳。 (只向上或向下看没有关系,这是一个近似值。)
我提出了一些巨大的疑问,但我很确定一定有更简单的方法......任何帮助将不胜感激。
【问题讨论】:
-
问题:你有没有重复的时间戳?也就是同一个产品的同一个时间戳?
标签: mysql