Połączenia zewnętrzne LEFT JOIN, RIGHT JOIN, FULL JOIN

Do łączenia zewnętrznego tabel używamy złączenia LEFT JOIN (oznaczanego często dokładnie LEFT OUTER JOIN) jeślli chcemy zachować niezmapowane wiersze z tabeli z lewej strony łączenia lub złączenia RIGHT JOIN (oznaczanego często dokładnie RIGHT OUTER JOIN) jeślli chcemy zachować niezmapowane wiersze z tabeli z prawej strony łączenia.
left

select
*
from tabela1 p LEFT JOIN tabela2 r on p.kolumna_tab1 = r.kolumna_tab2

right

select
*
from tabela1 p RIGHT JOIN tabela2 r on p.kolumna_tab1 = r.kolumna_tab2

Połączenie prawostronne RIGHT JOIN możemy także otrzymać stosując poniższy zapis

select
*
from tabela1 p, tabela2 r
where
p.kolumna_tab1 (+)= r.kolumna_tab2

Możliwe jest także otrzymanie niezmapowanych wierszy z obu tabel. Stosujemy do tego polecenie FULL JOIN (oznaczane często dokładnie FULL OUTER JOIN)
full

select
*
from tabela1 p FULL JOIN tabela2 r on p.kolumna_tab1 = r.kolumna_tab2

Ilustracje pobrane z https://www.youtube.com/watch?v=yNThOAuZtC0

Tags: