SQL INNER JOIN

SQL INNER JOIN



DEFINICJA

INNER JOIN służy do łączenia tabel. INNER JOIN to inaczej JOIN czyli złączenie wewnętrzne (zawężające). Parametry do złączenia podajemy w nawiasie po słówku ON. Łączenie następuje wg kolumn które wskazujemy po jednej stronie i po drugiej stronie. Typu danych po obu stronach muszą być takie same. Napisałem wcześniej że łącznie INNER JOIN (JOIN) jest zawężające, dlaczego? Ponieważ przy złączeniu INNER JOIN (JOIN) wybierzemy tylko część wspólną obu zbiorów (tabel). Jeżeli w którejkowiek tabeli do złączenia (w kolumnach złączenia) nie znajdą się identyczne wartości to rekord ten nie będzie brany pod uwagę przy wyniku zapytania. W wynikach znajdą się tylko te rekordy które w kolumnach złączenia w obu tabelach mają identyczne wartości.

SQL INNER JOIN grafika

SQL INNER JOIN składnia

SELECT
nazwy_kolumy(kolumn)
FROM
tabela1 INNER JOIN tabela2 ON (tabela1.kolumna2 = tabela2.kolumna1)


Przykład zastosowania INNER JOIN (baza Adventureworks)

Wyświetl wszyskie osoby (tylko kolumny: Nazwisko, Imię, Email) z bazy wraz z ich adresami email.

SELECT
P.LastName
,P.FirstName
,E.EmailAddress
FROM
Person.Person P
 INNER JOIN Person.EmailAddress E ON (P.BusinessEntityID = E.BusinessEntityID)

 


 Przykład zastosowania INNER JOIN (baza Northwind)

Wyświetl wszystkie produkty (tylko kolumny: ID, Nazwa Produktu, Kategoria Produktu) wraz z ich kategoriami.

SELECT
P.ProductID
,P.ProductName
,C.CategoryName
FROM
Products P INNER JOIN Categories C ON (P.CategoryID = C.CategoryID)