SQL оракул получить все возможные значения таблицы lib - PullRequest
0 голосов
/ 20 ноября 2018

Я использую sql ORACLE

У меня есть библиотечная таблица:

libid   libdescr
1       boss
2       secretary
3       manager

И таблица с некоторой информацией:

id  libid   descr
1   1   jim
1   2   james
2   1   rony
2   2   fred
2   3   jana

Я хочу объединить оба, но я должен иметь все возможные значения библиотеки.Итак, мой результат должен быть:

id  libid   libdescr    descr
1   1       bos         jim
1   2       secretary   james
1   3       manager     <null>
2   1       boss        rony
2   2       secretary   fred
2   3       manager     jana

Если я сделаю объединение

select info.*,lib.libdescr
from info
left join lib
on lib.libid = info.libid

Я не получу строку id=1 and libid=3

Как я могу сделатьуверен, что у меня есть все возможные значения?

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

В вашем запросе либо вам нужно использовать правое соединение, либо используйте следующий запрос:

select i.*, l.libdescr from lib l left join info i on l.libid=i.libid;             
0 голосов
/ 20 ноября 2018

Используйте cross join для генерации строк и left join для ввода значений из другой таблицы:

select i.id, l.libid, l.libdescr, s.descr
from (select distinct id from someinfo) i cross join
     library l left join
     someinfo s
     on s.id = i.id and s.libid = l.libid;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...