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 to klauzula SQL służąca do łączenia danych z dwóch lub więcej tabel w jednym zapytaniu. Stosuje się ją wtedy, gdy dane są rozdzielone między tabele, ale istnieje między nimi zależność, np. relacja 1..n.

Przykład: jedna tabela klienci zawiera dane klientów, a druga zamowienia zawiera ich zamówienia. Jeden klient może mieć wiele zamówień, więc tabele łączy się zwykle przez klucz główny i klucz obcy.

Podstawowa składnia

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

Przykład:

SELECT klienci.imie, klienci.nazwisko, zamowienia.data_zamowienia
FROM klienci
JOIN zamowienia
ON klienci.id = zamowienia.id_klienta;

Zapytanie zwróci dane klienta oraz odpowiadające mu zamówienia.

Najważniejsze rodzaje JOIN

  • INNER JOIN - zwraca tylko rekordy pasujące w obu tabelach; samo JOIN najczęściej oznacza właśnie INNER JOIN,
  • LEFT JOIN - zwraca wszystkie rekordy z lewej tabeli i pasujące rekordy z prawej,
  • RIGHT JOIN - zwraca wszystkie rekordy z prawej tabeli i pasujące rekordy z lewej,
  • FULL JOIN - zwraca rekordy z obu tabel, także te bez dopasowania, jeśli dany system SQL to obsługuje.

Ważne na egzaminie

Jeżeli pytanie dotyczy uzyskania odpowiadających sobie danych z dwóch tabel połączonych relacją, poprawną klauzulą jest JOIN. Odpowiedzi typu INNER LINK lub OUTER LINK są błędne, ponieważ w SQL używa się słowa JOIN, a nie LINK.