Oracle Внутреннее / Внешнее / Полное соединение

У меня есть две таблицы table1 и table2

В table1 у меня есть два столбца table1.userid и table2.full_name, а в table2 у меня есть два столбца table2.userid и table2.ssn

Мне нужны записи, в которых идентификатор пользователя присутствует как в таблице1, так и в таблице2.

Записи, имеющие идентификатор пользователя в таблице 1, следует игнорировать, если они присутствуют в таблице 2. Если нет, то также нужны данные из таблицы1. Также нужны остальные данные из таблицы2.

Должен ли я использовать внутреннее / внешнее / полное соединение?

Не могли бы вы помочь мне в том же.


person user1251973    schedule 31.08.2013    source источник


Ответы (1)


Если вам нужны userid, которые присутствуют в обеих таблицах, используйте inner join:

select . . .
from table1 t1 inner join
     table2 t2
     on t1.userid = t2.userid;

Если вы хотите все userid в table1, используйте left outer join:

select . . .
from table1 t1 left outer join
     table2 t2
     on t1.userid = t2.userid;

Если вы хотите все userids в обеих таблицах, используйте full outer join:

select . . .
from table1 t1 full outer join
     table2 t2
     on t1.userid = t2.userid;
person Gordon Linoff    schedule 31.08.2013
comment
У меня есть table1 со значениями 1 | john | 11, 2 | christine | 22, 3 | xavi | 1111, 4 | peter | 666 и table2 со значениями 3 | 33, 4 | 44. В обеих таблицах обычно используются 3 и 4 идентификатора пользователя. Если они распространены, я хочу получить его из таблицы2, а не из таблицы1. Также оставшийся идентификатор пользователя из таблиц table1 и table2 должен входить в мой запрос выбора. Таким образом, окончательный результат должен быть таким: 1 | john | 111, 2 | christine | 22, 3 | xavi | 33, 4 | peter | 44. - person user1251973; 01.09.2013
comment
@ user1251973. . . Удалите этот вопрос или измените его, добавив образцы данных и желаемые результаты. - person Gordon Linoff; 01.09.2013