Как задать sql запрос?

программирование базы данных sql oracle

Есть 2 таблицы
table 1
id name value
1 a 14
2 b 1
5 e 32
____________________
table2
id name value
1 a 13
2 b 12
3 c 11
4 d 11

Итак, нужно сделать выборку, если id присутствует и в той и другой таблице, тогда выбираем строку из второй таблицы. Если же id из первой или второй таблицы уникальный, тогда такая строка должна попасть в выборку
Результат
result_table
id name value
1 a 13
2 b 12
3 c 11
4 d 11
5 e 32

Как задать sql запрос? Есть соответствующий join?
oracle без программных расширений
Ответы:
Если я правильно понял задачу, и структура таблиц одинакова, то сделать это довольно просто.
select table2.* from table1, table2
where table1.id(+)=table2.id
--из второй таблицы выбираются все записи, независимо от наличия соответствия в первой
union
--к ним добавляются уникальные записи из первой таблицы
select table1.* from table1
where table1.id not in (select distinct table2.id from table2)
Есть и другие варианты решения этой задачи, может, лучшие - зависит от конкретного случая.
INNER JOIN
К table2 джоинить table1 по полю name


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.