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