【问题标题】:Join tables with different date fields连接具有不同日期字段的表
【发布时间】:2021-02-23 19:32:39
【问题描述】:

我正在尝试连接具有不同日期字段的表以按时间顺序对齐。

我的表格如下所示:

表 1:

id     date_1        val
--------------------------
1     08/20/2018     0.4   
1     08/21/2018     0.4   
1     08/22/2018     0.5  
1     10/05/2018     0.8           
2     01/05/2019     0.1   
2     02/10/2019     0.4   
2     02/11/2019     0.3   

表 2:

id     date_2       total
---------------------------
1     08/18/2018    31.1    
1     08/19/2018    31.12    
1     08/22/2018    32.08   
1     08/23/2018    31.5            
2     03/01/2019    22.7    

如果可能,我想加入这些表格,并获得:

id     date_1        val       date_2       total
-----------------------------------------------------
1       null        null     08/18/2018     31.1
1       null        null     08/19/2018     31.12
1     08/20/2018     0.4        null        null
1     08/21/2018     0.4        null        null 
1     08/22/2018     0.5     08/22/2018     32.08
1     10/05/2018     0.8        null        null     
2     01/05/2019     0.1        null        null
2     02/10/2019     0.4        null        null
2     02/11/2019     0.3        null        null
2       null        null      03/01/2019    22.7

因为重叠的日期很少,我不知道该怎么做...我只处理了左连接,其中“左”表包含“右”表中的日期。有谁知道如何做到这一点?

【问题讨论】:

  • 看起来像FULL OUTER JOIN

标签: sql join netezza


【解决方案1】:

我想你想要一个full join:

select coalesce(t1.id, t2.id) as id, t1.date_1,
       t1.val, t2.date_2, t2.total
from table1 t1 full join
     table2 t2
     on t1.id = t2.id and t1.date_1 = t2.date_2

【讨论】:

    【解决方案2】:

    @jarlh 是正确的,但您必须为其中一个表中的 id 字段设置别名。你想要的

    SELECT
       *
    FROM
      Table_1
    FULL OUTER JOIN
       Table_2
          ON Table_1.id = Table_2.id t2id
    ;
    

    【讨论】:

      猜你喜欢
      • 2015-10-31
      • 2017-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多