JOIN w SQL

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

JOIN służy do łączenia danych z dwóch lub więcej tabel na podstawie powiązanych kolumn. Najczęściej łączy się klucz główny jednej tabeli z kluczem obcym drugiej tabeli.

W relacji jeden do wielu tabela po stronie „wiele” przechowuje klucz obcy wskazujący rekord z tabeli po stronie „jeden”. Przykład: jeden klient może mieć wiele zgłoszeń, więc tabela Zgłoszenia zawiera kolumnę Klienci_id wskazującą klienta.

Składnia

SELECT kolumny
FROM tabela1
JOIN tabela2 ON tabela1.kolumna = tabela2.kolumna;

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

Przykład

SELECT opis, nazwisko
FROM Zgłoszenia
JOIN Klienci ON Klienci.id = Zgłoszenia.Klienci_id;

Zapytanie zwróci opis zgłoszenia oraz nazwisko klienta przypisanego do tego zgłoszenia.

Typowy błąd egzaminacyjny

Nie należy łączyć tabel przez przypadkowe kolumny o tej samej nazwie, np. Klienci.id = Zgłoszenia.id, jeśli Zgłoszenia.id oznacza numer zgłoszenia, a nie numer klienta.

Poprawne łączenie powinno używać klucza obcego:

Klienci.id = Zgłoszenia.Klienci_id