2016-12-14 2 views
0

У меня есть 2 таблицы:слева объединить две таблицы и вернуть первый ряд совпадающих записей во второй таблице

Таблица 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

Привет Филип, я только хочу, чтобы вернуться на 1-й матч 2-го стола. Ваше предложение вернет все матчи 2-й таблицы. –

+0

Привет, извините, я этого не заметил. Modified. –

+0

Привет, Филипп, если запись не найдена в 2-й таблице, она все равно вернет результаты из 1-й таблицы? –