SQL JOIN

SQL JOIN


    


DEFINICJA

JOIN służy do łączenia tabel. JOIN to inaczej INNER JOIN czyli złączenie wewnętrzne (zawężające) które zwraca część wspólną dwóch łączonych zbiorów/tabel. 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 JOIN (INNER JOIN) jest zawężające, dlaczego? Ponieważ przy złączeniu JOIN (INNER 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 JOIN grafika

SQL JOIN składnia

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


Przykład zastosowania 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
        JOIN Person.EmailAddress E ON (P.BusinessEntityID = E.BusinessEntityID)   

 


 Przykład zastosowania 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 JOIN Categories C ON (P.CategoryID = C.CategoryID)