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) |
Другие вопросы по тегам