
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:
- SELECT – wybieramy kolumny, które chcemy zwrócić.
- FROM – określamy pierwszą tabelę.
- INNER JOIN – łączymy drugą tabelę.
- 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
Opanuj SQL z moim kursem!
Poznasz zarówno podstawy, jak i zaawansowane zapytania analityczne (CTE, subqueries, window functions). Nauczysz się pracować na różnych silnikach – na kursie pracujemy zarówno na MySQL, jak i na Postgres. Wszystko zainstalujemy na Twoim komputerze, plus dostaniesz mnóstwo zestawów danych do ćwiczeń.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.