我有以下问题:我想用另一个表 B 的列“SOURCE_VALUE”中的值更新表 A 的列“UPDATE_VALUE”。两个表都有一个时间戳列,表 A 中应该更新的值应该是具有最高时间戳的表 B 行之一小于/等于表 A 行的时间戳。
例如:
表 A:
| ID | TIMESTAMP | UPDATE_VALUE |
| 1 | 2010-09-23 10:00:00 | |
| 2 | 2010-09-25 05:20:00 | |
| 3 | 2010-09-25 18:10:30 | |
| 4 | 2010-09-27 07:04:30 | |
表 B:
| ID | TIMESTAM P | SOURCE_VALUE |
| 1 | 2010-09-23 00:00:00 | VAL_1 |
| 2 | 2010-09-24 12:30:00 | VAL_2 |
| 2 | 2010-09-24 04:50:00 | VAL_3 |
| 3 | 2010-09-25 12:00:00 | VAL_4 |
| 3 | 2010-09-25 12:20:00 | VAL_5 |
| 4 | 2010-09-26 01:50:00 | VAL_6 |
| 4 | 2010-09-26 02:00:00 | VAL_7 |
| 5 | 2010-09-27 14:00:00 | VAL_8 |
| 6 | 2010-09-28 22:00:00 | VAL_9 |
因此,在表 A 的第 1 行中,我想要表 B 的 VAL_1,因为该行的时间戳是表 B 的最高值,小于/等于表 A 中行的时间戳。对于表 AI 的第 2 行,需要第 4 行表 B 等等。完整的结果应如下所示:
表 A:
| ID | TIMESTAMP | UPDATE_VALUE |
| 1 | 2010-09-23 14:25:00 | VAL_1 |
| 2 | 2010-09-25 12:00:00 | VAL_4 |
| 3 | 2010-09-25 14:00:00 | VAL_5 |
| 4 | 2010-09-27 16:50:00 | VAL_8 |
我正在使用 SQLite 3,但对 sql-query 的任何提示表示赞赏。
感谢您的时间和帮助,
杉