2017-10-11 248 views
0

我有這個樣子LEFT JOIN疏表到大表

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 

我試圖通過對T1左側的接合部T2使用ID和日期,結果總是隻在匹配的記錄中。如果我只加入ID,每個日期都會得到多個條目(每個值)。

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

我使用的Netezza – ThatQuantDude

+0

您應該添加你試過到目前爲止的聲明。 – clemens

+0

我猜你有一個where子句從左連接中過濾出空值。有可能限制t2的東西。你寫的SQL看起來應該沒有問題。 – xQbert

回答

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