小编del*_*kov的帖子

按最近的时间加入 2 个表,PostgreSQL 9.6

我有 2 个表:tbl1、tbl2。

CREATE TABLE tbl1(time_1)
AS VALUES
  ( '2017-09-06 15:26:03'::timestamp ),
  ( '2017-09-06 15:26:02' ),
  ( '2017-09-06 15:28:01' ),
  ( '2017-09-06 15:40:00' );

CREATE TABLE tbl2(time_2)
AS VALUES
  ( '2017-09-06 15:29:01'::timestamp ),
  ( '2017-09-06 15:40:00' ),
  ( '2017-09-06 15:23:59' ),
  ( '2017-09-06 15:45:58' );
Run Code Online (Sandbox Code Playgroud)

我想加入表格,因此对于 tbl1 中的每一行都匹配 tbl2 中最接近的时间。输出是:

     time_1                     time_2
---------------------      --------------------
 2017-09-06 15:26:03      2017-09-06 15:23:59      
 2017-09-06 15:26:02      2017-09-06 15:23:59 
 2017-09-06 15:28:01      2017-09-06 15:29:01
 2017-09-06 15:40:00      2017-09-06 15:45:58
Run Code Online (Sandbox Code Playgroud)

我知道如何找到最近时间的单个值:

SELECT * from tbl1 where time_1=INPUT_TIME ORDER BY case …
Run Code Online (Sandbox Code Playgroud)

postgresql join time

6
推荐指数
2
解决办法
5357
查看次数

标签 统计

join ×1

postgresql ×1

time ×1