Jak działa INNER JOIN w języku SQL? Przykłady zastosowania

Jak działa INNER JOIN w języku SQL? Przykłady zastosowania

Gdy zaczynamy przygodę z SQL, szybko napotykamy temat łączenia tabel. Jednym z najczęściej używanych sposobów na połączenie danych z różnych źródeł jest INNER JOIN. Na czym polega jego działanie i jak można go wykorzystać? O tym właśnie opowiem w tym artykule.

Co to jest INNER JOIN?

INNER JOIN w SQL to operacja, która pozwala połączyć rekordy z dwóch (lub więcej) tabel, zwracając tylko te wiersze, które mają odpowiadające sobie wartości w obu tabelach. Jeśli rekord w jednej tabeli nie znajdzie dopasowania w drugiej, nie pojawi się w wyniku zapytania.

Aby lepiej to zrozumieć, przyjrzyjmy się przykładowym tabelom:

id_klient imie nazwisko
1 Anna Kowalska
2 Jan Nowak
3 Piotr Wiśniewski

To jest tabela klienci. Mamy też tabelę zamówienia:

id_zamowienie id_klient produkt
101 1 Telefon
102 3 Laptop
103 3 Tablet

Jak używać INNER JOIN w SQL?

Chcemy połączyć obie tabele, aby zobaczyć, jakie zamówienia złożyli klienci. Możemy to zrobić w ten sposób:

SELECT klienci.imie, klienci.nazwisko, zamówienia.produkt
FROM klienci
INNER JOIN zamówienia ON klienci.id_klient = zamówienia.id_klient;

Rezultatem będzie lista klientów wraz z produktami, które zamówili:

imie nazwisko produkt
Anna Kowalska Telefon
Piotr Wiśniewski Laptop
Piotr Wiśniewski Tablet

Zauważ, że Jan Nowak nie pojawia się w wynikach – to dlatego, że nie złożył żadnego zamówienia.

Struktura zapytania INNER JOIN

Zapytanie INNER JOIN składa się z następujących elementów:

  1. SELECT – wybieramy kolumny, które chcemy zwrócić.
  2. FROM – określamy pierwszą tabelę.
  3. INNER JOIN – łączymy drugą tabelę.
  4. ON – określamy warunek łączenia, czyli kolumny, które muszą być zgodne w obu tabelach.

INNER JOIN vs. LEFT JOIN – jaka jest różnica?

Gdy korzystamy z INNER JOIN, zwracane są tylko rekordy, które mają dopasowanie w obu tabelach. W przypadku LEFT JOIN (czyli złączenia lewego) otrzymamy wszystkie rekordy z tabeli po lewej stronie, nawet jeśli nie mają dopasowania w tabeli po prawej.

Zobaczmy różnicę:

SELECT klienci.imie, klienci.nazwisko, zamówienia.produkt
FROM klienci
LEFT JOIN zamówienia ON klienci.id_klient = zamówienia.id_klient;

W tym przypadku Jan Nowak również pojawi się w wynikach, ale dla produktu zobaczymy wartość NULL, ponieważ nie złożył żadnego zamówienia.

Praktyczne zastosowania INNER JOIN

INNER JOIN jest niezwykle przydatny w różnych scenariuszach baz danych, takich jak:

  • Łączenie użytkowników z ich zamówieniami.
  • Łączenie pracowników z działami, w których pracują.
  • Łączenie klientów z ich fakturami.
  • Łączenie studentów z wynikami egzaminów.

Podsumowanie

INNER JOIN w języku SQL to potężne narzędzie do łączenia tabel, które umożliwia pobranie tylko tych rekordów, które mają dopasowanie w obu źródłach. Jest szeroko stosowany w analizie danych i budowaniu relacyjnych baz danych.

Warto ćwiczyć zapytania INNER JOIN, pracując na rzeczywistych bazach danych, aby lepiej zrozumieć sposób ich działania. Znajomość różnych rodzajów JOIN (w tym LEFT JOIN, RIGHT JOIN czy FULL JOIN) znacznie ułatwi pracę z danymi.

 

Inny ciekawy artykuł:

Jak działa JOIN w języku SQL? Przykłady zastosowania

KajoDataSpace