Left Outer Join, нет результата в конечном запросе
Я выполняю следующий запрос
Select * from A a left outer join B b on (b.id = a.id)
Я получаю одну запись от A и никаких записей от B. Я ожидаю одну запись в конечном запросе выбора, но не получаю ни одной.
Вот некоторые примеры данных:
v_id, id, date, d_id
1, 1244578, 02-MAR-11, 1827877
B, данные не представлены:
e_id,id,amount
Что я делаю неправильно? Как я могу сделать это так?
2 ответа
Вы получаете одну запись из таблицы A, потому что в таблице A есть только одна запись, а в таблице B нет записей. В левом внешнем соединении содержимое первой таблицы показывается в результате объединения результатов со второй таблицей, но во втором случае во второй таблице нет записей, поэтому окончательный результат показывает нулевые значения для этих записей.
Это должно работать нормально:
Select *
from A a
left outer join B b on b."id" = a."id"
Смотрите это в действии здесь:
Это даст вам:
| V_ID | ID | DATE | D_ID | E_ID | AMOUNT |
----------------------------------------------------------
| 1 | 1244578 | 02-MAR-11 | 1827877 | (null) | (null) |