Inner join w MySQL to rodzaj złączenia tabel, który pozwala na połączenie dwóch tabel w taki sposób, że w wynikowym zestawie danych znajdują się tylko te rekordy, które mają pasujące wartości w kolumnach połączonych za pomocą operatora JOIN
.
Oto przykład złączenia tabel „Użytkownicy” i „Zamówienia” za pomocą operatora INNER JOIN
:
SELECT Uzytkownicy.Imie, Uzytkownicy.Nazwisko, Zamowienia.Data-Zamowienia
FROM Uzytkownicy
INNER JOIN Zamowienia ON Uzytkownicy.ID-Uzytkownika = Zamowienia.ID-Uzytkownika;
W tym przykładzie kwerenda zwróci wszystkie rekordy z tabeli „Użytkownicy” i „Zamówienia”, które mają pasujące wartości w kolumnie „ID Użytkownika”. Jeśli w tabeli „Zamówienia” istnieje rekord z „ID Użytkownika”, którego nie ma w tabeli „Użytkownicy”, to taki rekord nie zostanie uwzględniony w wyniku.
Ta kwerenda SELECT
łączy tabele „Użytkownicy” i „Zamówienia” za pomocą operatora INNER JOIN
i wyświetla imię, nazwisko i datę zamówienia dla wszystkich użytkowników, którzy złożyli zamówienie.
Operator INNER JOIN
pozwala na połączenie dwóch tabel w taki sposób, że w wynikowym zestawie danych znajdują się tylko te rekordy, które mają pasujące wartości w kolumnach połączonych za pomocą operatora JOIN
. W tym przypadku kolumny połączone są za pomocą operatora ON Uzytkownicy.ID-Uzytkownika = Zamowienia.ID-Uzytkownika
, co oznacza, że w wyniku zostaną uwzględnione tylko te rekordy, w których wartości kolumn „Użytkownicy.ID Użytkownika” i „Zamówienia.ID Użytkownika” są sobie równe.
Przykładowo, jeśli tabele „Użytkownicy” i „Zamówienia” zawierają następujące dane:
Użytkownicy:
ID-Uzytkownika | Imie | Nazwisko
----------------|-------|---------
1 | Jan | Kowalski
2 | Anna | Nowak
3 | Piotr | Wiśniewski
Zamówienia:
ID-Uzytkownika | Data-Zamowienia
----------------|----------------
1 | 2021-01-01
2 | 2021-01-02
3 | 2021-01-03
W wyniku wywołania tej kwerendy otrzymamy następujące dane:
Imie | Nazwisko | Data-Zamowienia
-------|----------|----------------
Jan | Kowalski | 2021-01-01
Anna | Nowak | 2021-01-02
Piotr | Wiśniewski | 2021-01-03