Twoje Centrum Szkoleniowe

Nauczmy się dziś czegoś nowego!

Kurs programowania - SQL

FULL JOIN – dołączanie wszystkich wierszy z obu tabel

FULL JOIN, nazywany także FULL OUTER JOIN, to sposób łączenia tabel w SQL, który pozwala wyświetlić wszystkie rekordy z obu tabel. FULL JOIN zwraca wszystkie wiersze z jednej i drugiej tabeli — zarówno te, które mają dopasowanie w obu tabelach, jak i te, które nie mają. Jeśli nie ma dopasowania w jednej z tabel, w brakujących kolumnach pojawi się wartość NULL.

FULL JOIN jest przydatny, gdy chcemy uzyskać pełny zestaw danych, nawet jeśli niektóre wiersze nie mają odpowiedników w drugiej tabeli. Pozwala to zobaczyć pełny obraz informacji bez pomijania żadnych danych.

Jak działa FULL JOIN

FULL JOIN łączy dane z dwóch tabel na podstawie wspólnych wartości w określonych kolumnach. Jeśli brakuje dopasowania w jednej z tabel, SQL wypełnia brakujące kolumny wartością NULL. Dzięki temu możemy zobaczyć wszystkie dane, nawet jeśli nie wszystkie wiersze mają swoje odpowiedniki w obu tabelach.

Podstawowa składnia

SELECT kolumny 
FROM tabela1 
FULL JOIN tabela2 
ON tabela1.wspolna_kolumna = tabela2.wspolna_kolumna;
  • tabela1: Tabela, z której wszystkie rekordy będą zwrócone.
  • tabela2: Druga tabela, z której wszystkie rekordy będą zwrócone. Jeśli nie ma dopasowania, wartości będą NULL.

Przykład FULL JOIN

Wyobraźmy sobie, że mamy dwie tabele: Uczniowie i Klasy. Tabela Uczniowie zawiera informacje o uczniach, w tym identyfikator klasy (klasa_id). Tabela Klasy zawiera informacje o każdej klasie, takie jak jej identyfikator (id) i nazwę klasy.

Przykład: Wyświetl listę wszystkich uczniów oraz wszystkich klas, wraz z informacją, do której klasy należy dany uczeń lub które klasy nie mają przypisanych uczniów.

SELECT Uczniowie.imie, Uczniowie.nazwisko, Klasy.nazwa 
FROM Uczniowie 
FULL JOIN Klasy 
ON Uczniowie.klasa_id = Klasy.id;

W tym przykładzie FULL JOIN łączy tabelę Uczniowie z tabelą Klasy na podstawie kolumny klasa_id w tabeli Uczniowie i kolumny id w tabeli Klasy. Jeśli dany uczeń nie jest przypisany do żadnej klasy, kolumna nazwa będzie miała wartość NULL. Podobnie, jeśli jakaś klasa nie ma przypisanych uczniów, kolumny dotyczące uczniów będą miały wartość NULL.

Kiedy używać FULL JOIN

FULL JOIN warto użyć, gdy chcemy zobaczyć wszystkie rekordy z obu tabel, niezależnie od tego, czy mają swoje odpowiedniki. Może być przydatny w sytuacjach, w których potrzebujemy pełnego obrazu danych, a brakujące informacje nie stanowią problemu. Jest to szczególnie przydatne w analizie, gdy chcemy zobaczyć wszystkie możliwe relacje między dwiema tabelami, nawet jeśli niektóre dane są niekompletne.

Testy przypięte do lekcji
Aby uzyskać dostęp do testów i ćwiczeń interaktywnych - Zaloguj się
Aby widzieć ocenę lekcji - Zaloguj się