Archiwa tagu: sql full outer join

SQL FULL OUTER JOIN

SQL FULL OUTER JOIN


    


DEFINICJA

FULL OUTER JOIN służy także do łączenia tabel. Dla lepszego zobrazowania procesu łączenia FULL OUTER JOIN wyobraźmy sobie sytuację gdzie mamy dwie tabele (patrz na poniższą grafikę): tabela 1 (zwana dalej t1) po lewej stronie i tabela 2 (zwana dalej t2) po prawej stronie. Każda z tabel posiada pole (klucz) wg którego będziemy łączyć obie tabele: t1.klucz i t2.klucz (pamiętamy, że pola te muszą być tego samego typu). W przypadku zastosowania FULL OUTER JOIN przy złączeniu system zachowa się w poniższy sposób. W sytuacji kiedy po obu stronach znajdzie "dopasowanie", po obu stronach wpisze odpowiednie wartości, które są w tabelach 1 i 2. W przypadku kiedy w którejkolwiek ze stron nie znajdzie "dopasowania" w to miejsce wpisze wartość NULL, oznaczającą brak dopasowania, brak wartości. Złączenie tabel następują po słówku FROM.
Po złączeniu mamy dwie możliwości. Jeżeli chcemy uzyskać wszystkie z częścią wspólną (grafika poniżej) to korzystamy ze składni:

SQL FULL OUTER JOIN grafika

SQL FULL OUTER JOIN składnia

SELECT
    nazwa_kolumny(kolumn)
FROM
    tabela1 FULL OUTER JOIN tabela2 ON (tabela1.klucz = tabela2.klucz)

a jeśli chcemy uzyskać wszysktie wartości z obu tabel bez tych które stanowią część wspólną (grafika poniżej) to oprócz złączenia LEFT OUTER JOIN musimy wpisać dodatkowy warunke w klauzuli WHERE.

SQL FULL OUTER JOIN składnia

SELECT
    nazwa_kolumny(kolumn)
FROM
    tabela1 FULL OUTER JOIN tabela2 ON (tabela1.klucz = tabela2.klucz)
WHERE
    tabela1.klucz IS NULL
    AND
    tabela2.klucz IS NULL