Przejdź do głównej treści

JOIN w SQL

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Co to jest JOIN w SQL?

JOIN służy do łączenia danych z dwóch lub więcej tabel w zapytaniu SELECT. Najczęściej tabele łączy się na podstawie powiązania między kluczem obcym w jednej tabeli a kluczem głównym w drugiej tabeli.

W relacyjnych bazach danych dane są zwykle podzielone na kilka tabel. Przykład: tabela filmy może przechowywać informacje o filmach, a tabela rezyserzy dane reżyserów. Zamiast wpisywać nazwisko reżysera przy każdym filmie, w tabeli filmy zapisuje się identyfikator reżysera, np. rezyserID.

Składnia

SELECT kolumny
FROM tabela1
JOIN tabela2
ON tabela1.klucz_obcy = tabela2.klucz_glowny;

Warunek po ON określa, które rekordy z obu tabel mają zostać ze sobą połączone.

Przykład

SELECT filmy.tytul, rezyserzy.imie, rezyserzy.nazwisko
FROM filmy
JOIN rezyserzy
ON filmy.rezyserID = rezyserzy.id;

W tym przykładzie:
- filmy.rezyserID to klucz obcy,
- rezyserzy.id to klucz główny,
- jeden reżyser może mieć wiele filmów.

Typowy błąd egzaminacyjny

Nie należy łączyć przypadkowych kolumn o tej samej nazwie, np. filmy.id = rezyserzy.id, jeśli nie opisują tego samego związku. Poprawne połączenie wynika z relacji: klucz obcy wskazuje na klucz główny.