我有两个表A和B.表A的格式如下:
id task_start_time task_end_time
__ _______________ _____________
1 2017-03-21 00:09:10 2017-03-21 00:12:18
1 2017-03-21 00:12:19 2017-03-21 00:12:56
1 2017-03-21 00:12:57 2017-03-21 00:13:10
2 2017-03-21 10:09:10 2017-03-21 10:25:34
2 2017-03-21 10:25:34 2017-03-21 11:09:10
2 2017-03-21 11:09:10 2017-03-21 11:21:39
3 2017-03-21 12:09:10 2017-03-21 12:19:19
3 2017-03-21 12:19:19 2017-03-21 12:29:19
3 2017-03-21 12:29:10 2017-03-21 12:39:10
表B的格式如下
id task_end_time previous_task_end_time
__ _____________ ______________________
1 2017-03-21 00:12:18 NA
1 2017-03-21 00:12:56 2017-03-21 00:12:18
1 2017-03-21 00:13:10 2017-03-21 00:12:56
2 2017-03-21 10:25:34 2017-03-21 10:25:34
2 2017-03-21 11:09:10 2017-03-21 11:09:10
2 2017-03-21 11:21:39 2017-03-21 11:21:39
3 2017-03-21 12:19:19 2017-03-21 12:19:19
3 2017-03-21 12:29:19 2017-03-21 12:29:19
3 2017-03-21 12:39:10 2017-03-21 12:39:10
现在我需要以这种格式使用表格
id task_start_time task_end_time previous_task_end_time
__ _______________ _____________ ______________________
1 2017-03-21 00:09:10 2017-03-21 00:12:18 NA
1 2017-03-21 00:12:19 2017-03-21 00:12:56 2017-03-21 00:12:18
1 2017-03-21 00:12:57 2017-03-21 00:13:10 2017-03-21 00:12:56
2 2017-03-21 10:09:10 2017-03-21 10:25:34 2017-03-21 10:25:34
2 2017-03-21 10:25:34 2017-03-21 11:09:10 2017-03-21 11:09:10
2 2017-03-21 11:09:10 2017-03-21 11:21:39 2017-03-21 11:21:39
3 2017-03-21 12:09:10 2017-03-21 12:19:19 2017-03-21 12:19:19
3 2017-03-21 12:19:19 2017-03-21 12:29:19 2017-03-21 12:29:19
3 2017-03-21 12:29:10 2017-03-21 12:39:10 2017-03-21 12:39:10
我知道我可以通过id和start_time进行内部连接,但是如何将生成的previous_end_time保存为A中的新列?任何帮助表示赞赏
答案 0 :(得分:1)
首先,在表格previous_end_time
中创建新列a
。
ALTER TABLE a ADD COLUMN previous_end_time TIMESTAMP;
然后更新列。
UPDATE a SET previous_end_time = b.previous_task_end_time
FROM b WHERE a.id = b.id AND a.task_end_time = b.task_end_time