LEFT JOIN稀疏表到大表上

时间:2017-10-11 17:16:02

标签: join left-join netezza

我有两个看起来像这样的表

Date         ID            Date         ID    Value
2017-01-01   1             2017-01-01   1     10.0
2017-01-01   2             2017-01-01   2     15.0
2017-01-01   3             2017-01-02   3     20.0
2017-01-01   4             2017-01-02   4     50.0
2017-01-02   1
2017-01-02   2
2017-01-02   3
2017-01-02   4

我想以一种方式加入

Date         ID   Value
2017-01-01   1    10.0  
2017-01-01   2    15.0
2017-01-01   3    NULL
2017-01-01   4    NULL
2017-01-02   1    NULL
2017-01-02   2    NULL
2017-01-02   3    20.0
2017-01-02   4    50.0

我尝试使用ID和日期在T1上加入T2,结果只是匹配的记录。如果我只加入ID,我会为每个日期获得多个条目(每个值)。

SELECT
  t1.Date,
  t1.ID,
  t2.Value
FROM table1 t1
left join table2 t2 using (Date,ID)

1 个答案:

答案 0 :(得分:0)

这是另一种表达方式:

SELECT
    t1.Date,
    t1.ID,
    t2.Value
FROM
    table1 t1
    LEFT OUTER JOIN table2 t2 ON
        t1.Date = t2.Date
        AND t1.ID = t2.ID