Rodzaje łączeń tabel (JOIN)

Darmowy Kurs SQL Online

Darmowy Kurs SQL Online

Temat: Rodzaje łączeń tabel (JOIN)

W SQL często musimy połączyć dane z kilku tabel, aby uzyskać pełniejszy obraz informacji. Tabele w bazie danych mogą być ze sobą powiązane i przechowywać różne, uzupełniające się dane. Dzięki łączeniom (JOIN) możemy połączyć te dane w jednym zapytaniu, co pozwala nam lepiej zrozumieć całość.

Istnieje kilka głównych rodzajów łączeń (JOIN), które pomagają w elastycznym łączeniu danych z różnych tabel:

Rodzaje JOIN

  • INNER JOIN: Zwraca tylko te rekordy, które mają dopasowanie w obu tabelach. Jest to najczęściej używane łączenie, gdy chcemy zobaczyć tylko te dane, które mają odpowiadające sobie wartości w obu tabelach.

Przykład:

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

 

  • LEFT JOIN (LEFT OUTER JOIN): Zwraca wszystkie rekordy z lewej tabeli oraz pasujące rekordy z prawej tabeli. Jeśli w prawej tabeli nie ma dopasowania, w wynikach pojawi się NULL. Używamy tego typu łączenia, gdy chcemy zobaczyć wszystkie dane z lewej tabeli, nawet jeśli nie mają odpowiedników po prawej stronie.

Przykład:

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

 

  • RIGHT JOIN (RIGHT OUTER JOIN): Działa podobnie do LEFT JOIN, ale zwraca wszystkie rekordy z prawej tabeli oraz pasujące rekordy z lewej tabeli. Jeśli w lewej tabeli nie ma dopasowania, w wynikach pojawi się NULL. Ten rodzaj łączenia jest rzadziej używany, ale może być przydatny w niektórych sytuacjach.

Przykład:

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

 

  • FULL JOIN (FULL OUTER JOIN): Zwraca wszystkie rekordy z obu tabel, niezależnie od dopasowania. Jeśli w jednej z tabel nie ma odpowiadającego rekordu, w odpowiednich kolumnach pojawi się NULL. Dzięki temu łączeniu możemy zobaczyć pełny zestaw danych, nawet jeśli nie wszystkie rekordy mają swoje odpowiedniki.

Przykład:

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

Każdy z tych rodzajów JOIN pozwala na różne sposoby łączenia danych, w zależności od tego, czego potrzebujemy. To był ogólny przegląd typów łączeń, a w kolejnych lekcjach dokładniej omówimy każdy z nich, pokazując szczegółowe przykłady, które pomogą Ci zrozumieć, jak i kiedy ich używać.

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