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
ONmusi wskazywać powiązane kolumny (ON tabela1.id = tabela2.id_tabela1). - Jeśli pominiemy klauzulę
ONlub użyjemy przecinka bezWHERE(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.