Oracle Inner/Outer/Full Join

Имам две таблици table1 и table2

В table1 имам две колони table1.userid и table2.full_name и в table2 имам две колони table2.userid и table2.ssn

Искам записи, в които userid присъства както в table1, така и в table2.

Записите с потребителски идентификатор в таблица1 трябва да се игнорират, ако присъстват в таблица2. Ако не присъства, тогава искате данни и от таблица1. Искам и останалите данни от таблица2.

Трябва ли да използвам вътрешно/външно/пълно присъединяване?

Можете ли да ми помогнете за същото.


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


Отговори (1)


Ако искате userids, които присъстват в и двете таблици, използвайте inner join:

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

Ако искате всички userids в table1, използвайте left outer join:

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

Ако искате всички useridss в двете таблици, използвайте 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 userid са често срещани и в двете таблици. Ако те са често срещани, тогава искам да го извлека от таблица2, а не от таблица1. Също така оставащият потребителски идентификатор от table1 и table2 трябва да дойде в моята заявка за избор. Така че крайният резултат трябва да бъде като 1|john|111, 2|christine|22, 3|xavi|33, 4|peter|44. - person user1251973; 01.09.2013
comment
@потребител1251973. . . Или изтрийте този въпрос, или го променете с примерни данни и резултатите, които искате. - person Gordon Linoff; 01.09.2013