Zapytanie z klauzulą JOIN stosuje się, aby
Pytanie z egzaminu CKE, styczeń 2020 (arkusz EE.09-SG-20.01).
Klauzulę JOIN stosuje się, aby uzyskać wyniki z dwóch tabel pozostających ze sobą w relacji. Po JOIN podaje się drugą tabelę, a po ON warunek złączenia, zwykle równość klucza obcego i klucza głównego, np. SELECT * FROM zamowienia JOIN klienci ON zamowienia.klient_id = klienci.id. W wyniku każdy wiersz łączy pola z obu tabel. Do zapamiętania: JOIN, czyli domyślny INNER JOIN, zwraca tylko pasujące pary, a LEFT JOIN także wiersze z lewej tabeli bez dopasowania. Złączeń używa się wszędzie tam, gdzie dane podzielono na tabele, np. zamówienia z danymi klienta. Złączenia można też łączyć w łańcuch, np. zamówienia z klientami i z produktami.
JOIN nie zmienia budowy tabel, więc nie definiuje klucza obcego - to zadanie FOREIGN KEY w CREATE TABLE albo ALTER TABLE. Funkcję agregującą, np. COUNT() czy SUM(), wywołuje się w części SELECT i można to zrobić bez żadnego złączenia. Wynik z jednej tabeli daje zwykłe zapytanie SELECT bez JOIN - złączenie z definicji dotyczy co najmniej dwóch tabel. Złączenie korzysta z istniejącej relacji, czyli z klucza obcego, ale go nie tworzy. Jego celem jest zebranie powiązanych danych z dwóch tabel w jednym wyniku. Łatwo pomylić złączenie z kluczem obcym, bo oba dotyczą powiązań między tabelami. Klucz obcy opisuje relację na stałe w strukturze bazy, a złączenie wykorzystuje ją dopiero w chwili wykonywania zapytania. Wymienienie dwóch tabel bez warunku złączenia dałoby z kolei każdy wiersz pierwszej tabeli połączony z każdym wierszem drugiej.