2016-12-14 73 views
0

返回匹配記錄的第一行我有2個表:LEFT JOIN兩個表,並在第二個表

表1:

Order_No | Item_No | Line_No | Amount 
---------|---------|---------|-------  
121212 | AAAA | 1  | 500 
151515 | BBBB | 1  | 400 
151515 | CCCC | 2  | 900 

表2:

Order_No | Item_No | Line_No | Invoice_No 
---------|---------|---------|----------- 
121212 | AAAA | 1  | 11000012 
151515 | BBBB | 1  | 11002356 
151515 | BBBB | 1  | 11000586 

我要加入用左連接的2個表(表1左連接表2)並返回表2的第一個匹配,如下結果:

結果:

Order_No | Item_No | Line_No | Invoice_No | Amount 
---------|---------|---------|----------- |------- 
121212 | AAAA | 1  | 11000012 | 500 
151515 | BBBB | 1  | 11002356 | 400 
151515 | CCCC | 2  |   | 900 

我該怎麼做?

回答

0

那麼它實際上不是「左外連接」:

SELECT 
    t1.Order_No, t1.Item_No, t1.Line_No, 
    (SELECT Invoice_No FROM Table2 AS t2 
    WHERE t1.Order_No=t2.Order_No AND t1.Item_No=t2.Item_No 
    AND t1.Line_No=t2.LineNo LIMIT 1), 
    Amount 
FROM Table1 AS t1 
+0

嗨菲利普,我只想要回第二個表的第一次比賽。你的建議將返回第二表的所有匹配。 –

+0

嗨,對不起,我沒有注意到。改性。 –

+0

嗨菲利普,如果在第二張表中沒有找到記錄,它是否仍然會返回第一張表的結果? –