2016-12-14 99 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

嗨菲利普,如果在第二张表中没有找到记录,它是否仍然会返回第一张表的结果? –