Przejdź do treści głównej
INF.03Bazy Danych

Złączenia tabel (JOIN) w SQL

Operacja łącząca kolumny z dwóch lub więcej tabel na podstawie powiązanych między nimi kolumn (zazwyczaj relacji klucz obcy - klucz główny).

Rodzaje złączeń w SQL:

  • INNER JOIN (złączenie wewnętrzne) – zwraca tylko te wiersze, które mają pasujące wartości w obu tabelach.
  • LEFT (OUTER) JOIN – zwraca wszystkie wiersze z lewej tabeli oraz dopasowane wiersze z prawej (brak dopasowania = NULL).
  • RIGHT (OUTER) JOIN – zwraca wszystkie wiersze z prawej tabeli oraz dopasowane z lewej.
  • FULL (OUTER) JOIN – zwraca rekordy, gdy istnieje dopasowanie w co najmniej jednej z tabel.
  • CROSS JOIN – iloczyn kartezjański (każdy wiersz z pierwszej tabeli łączony jest z każdym wierszem z drugiej).
SQL
-- Przykład INNER JOIN:
SELECT u.nazwisko, z.numer_zamowienia, z.kwota
FROM uzytkownicy u
INNER JOIN zamowienia z ON u.id = z.id_uzytkownika;

-- Przykład LEFT JOIN (klienci bez zamówień):
SELECT k.nazwa, z.id AS id_zamowienia
FROM klienci k
LEFT JOIN zamowienia z ON k.id = z.id_klienta
WHERE z.id IS NULL;

Najczęstsze pułapki na egzaminie INF.03:

  • Warunek łączenia w klauzuli ON musi wskazywać powiązane kolumny (ON tabela1.id = tabela2.id_tabela1).
  • Jeśli pominiemy klauzulę ON lub użyjemy przecinka bez WHERE (FROM tab1, tab2), powstanie iloczyn kartezjański.

Chcesz sprawdzić to pojęcie w praktyce?

Przeszukaj pytania z oficjalnych arkuszy CKE powiązane z hasłem Złączenia tabel (JOIN) w SQL lub rozpocznij trening.