Jak działa FULL JOIN w języku SQL? Przykłady zastosowania

Jak działa FULL JOIN w języku SQL? Przykłady zastosowania

W świecie SQL mamy kilka sposobów na łączenie tabel, a jednym z nich jest FULL JOIN. Jest to operacja, która potrafi połączyć dane z dwóch tabel w bardzo użyteczny sposób. Jeśli kiedykolwiek spotkałeś się z pojęciami LEFT JOIN i RIGHT JOIN, to FULL JOIN jest połączeniem obu tych podejść.

Co to jest FULL JOIN?

FULL JOIN w SQL to operacja, która zwraca wszystkie rekordy zarówno z lewej, jak i z prawej tabeli. Jeśli nie ma dopasowania w jednej z tabel, SQL zwróci wartość NULL w brakujących kolumnach.

Składnia FULL JOIN

Oto podstawowa składnia FULL JOIN:

SELECT kolumny
FROM tabela1
FULL JOIN tabela2
ON tabela1.klucz = tabela2.klucz;

Przyjrzyjmy się teraz przykładowi, który pokaże działanie tego typu zapytania.

Przykład użycia FULL JOIN

Załóżmy, że mamy dwie tabelki: Klienci i Zamówienia. Chcemy uzyskać pełną listę klientów i zamówień, nawet jeśli niektóre zamówienia nie mają przypisanego klienta lub niektórzy klienci jeszcze nic nie zamówili.

Struktura tabel

Klienci Zamówienia

+----+--------------+
| ID | Imie        |
+----+--------------+
|  1 | Anna        |
|  2 | Jan         |
|  3 | Tomasz      |
+----+--------------+

+----+-----------+-----------+
| ID | Klient_ID | Produkt   |
+----+-----------+-----------+
|  1 |    1      | Laptop    |
|  2 |    2      | Telefon   |
|  3 |    4      | Tablet    |
+----+-----------+-----------+

Jak widzimy, mamy trzech klientów i trzy zamówienia. Warto zwrócić uwagę, że zamówienie nr 3 zostało złożone przez nieistniejącego w tabeli klienta (ID = 4), a klient Tomasz nie ma żadnego zamówienia.

Zapytanie FULL JOIN

SELECT Klienci.ID, Klienci.Imie, Zamówienia.Produkt
FROM Klienci
FULL JOIN Zamówienia
ON Klienci.ID = Zamówienia.Klient_ID;

Wynik zapytania


+------+--------+---------+
| ID   | Imie   | Produkt |
+------+--------+---------+
|  1   | Anna   | Laptop  |
|  2   | Jan    | Telefon |
|  3   | Tomasz | NULL    |
| NULL | NULL   | Tablet  |
+------+--------+---------+

Jak widzimy:

  • Klient Anna i Jan mają przypisane zamówienia.
  • Klient Tomasz nie dokonał jeszcze żadnego zamówienia, więc kolumna Produkt zawiera wartość NULL.
  • Istnieje zamówienie (Tablet), które nie ma odpowiadającego mu klienta, więc pola ID i Imie zawierają NULL.

Kiedy warto używać FULL JOIN?

FULL JOIN jest przydatny w kilku przypadkach, szczególnie gdy:

  1. Chcemy uzyskać pełne zestawienie danych z dwóch tabel, niezależnie od tego, czy istnieją dopasowania.
  2. Analizujemy brakujące relacje między tabelami.
  3. Budujemy raporty, które muszą uwzględniać zarówno pasujące, jak i niepasujące rekordy.

FULL JOIN a inne rodzaje JOIN

Dla lepszego zrozumienia FULL JOIN porównajmy go z innymi typami JOIN:

  • INNER JOIN – zwraca tylko rekordy, które mają odpowiedniki w obu tabelach.
  • LEFT JOIN – zwraca wszystkie rekordy z lewej tabeli oraz pasujące rekordy z prawej.
  • RIGHT JOIN – zwraca wszystkie rekordy z prawej tabeli oraz pasujące rekordy z lewej.
  • FULL JOIN – łączy LEFT JOIN i RIGHT JOIN, zwracając wszystkie rekordy z obu tabel.

Podsumowanie

FULL JOIN w SQL to potężne narzędzie, które pomaga analizować dane z dwóch tabel, nawet jeśli nie pasują one do siebie idealnie. Jeśli kiedykolwiek masz sytuację, w której potrzebujesz pełnego obrazu – zarówno dopasowanych, jak i brakujących rekordów – FULL JOIN będzie najlepszym wyborem.

 

Inny ciekawy artykuł:

Jak działa RIGHT JOIN w języku SQL? Przykłady zastosowania

KajoDataSpace