Как объединить 2 таблицы, содержащие ноль в оракуле? - PullRequest
0 голосов
/ 29 апреля 2018

Как вы это делаете в апексе oracle? Я уже пытаюсь использовать это

select br_book.title, br_publisher.name
from br_book left outer join br_publisher on br_book.publisherid=br_publisher.publisherid

и результат не такой, как я хочу.

здесь вопрос и результат должен быть

Показывает имя издателя каждого названия книги, включая книги, у которых нет издателя, и издателей, у которых нет опубликованных книг. Ожидаемый результат обеспечен.

Результат
enter image description here

Ответы [ 2 ]

0 голосов
/ 29 апреля 2018

Технически, NULL не является значением. По этой причине NULL всегда отличается от NULL. Попробуйте это:

select br_book.title, br_publisher.name
from br_book left outer join br_publisher on IFNULL(br_book.publisherid,'XyX') = IFNULL(br_publisher.publisherid, 'XyX')
0 голосов
/ 29 апреля 2018

Вы должны добавить отсутствующий результат с левым соединением, обращенным к таблицам

select br_book.title, br_publisher.name
from br_book 
left join br_publisher on br_book.publisherid=br_publisher.publisherid
union 
select br_book.title, br_publisher.name
from br_publisher  
left br_book join  on br_book.publisherid=br_publisher.publisherid
where br_book.publisherid is null 

или добавьте право присоединиться

select br_book.title, br_publisher.name
from br_book 
left join br_publisher on br_book.publisherid=br_publisher.publisherid
right join br_publisher br_book join  on br_book.publisherid=br_publisher.publisherid
...