Złączenia JOIN – Pojmij podstawy SQL !
Złączenia JOIN
Złączenia (instrukcja JOIN) służą do łączenia danych z dwóch tabel. Aby można było przeprowadzić złączenie, każda z tabel musi mieć przynajmniej jedno pole, które pozwoli znaleźć pasujące rekordy z drugiej tabeli. Od typu złączenia zależy, które rekordy znajdą się w zbiorze wyników. Przyjrzyj się dwóm poniższym tabelom. Jedna zawiera zwykłe napoje, a druga — napoje dietetyczne. W obu tabelach znajdują się dwa pola: z nazwą napoju i z kodem produktu. Pole z kodem posłuży do dopasowywania rekordów.
Producenci napojów (PRODUCENT):
NAME | PRODUCENT_ID |
Budweiser | BUDWEISER |
Coca-Cola | COCACOLA |
Pepsi | PEPSI |
Tabela napojów (BEVERAGE):
NAME | PRODUCENT_ID |
Diet Coca-Cola | COCACOLA |
Diet Pepsi | PEPSI |
Woda | WATERCOMP |
Pepsi Light | PEPSI |
Tabele producentów i napojów można złączyć ze sobą na wiele sposobów. Ich opis znajdziesz poniżej.
- INNER JOIN – Zbiór wyników zawiera tylko dane, które w odpowiednich kolumnach zawierają pasujące do siebie wartości. W tym przykładzie zwrócone zostaną trzy rekordy: jeden z kodem COCACOLA i dwa z kodem PEPSI.
- OUTER JOIN – To złączenie zawsze obejmuje wyniki złączenia INNER JOIN, a ponadto może zawierać niektóre rekordy, dla których nie ma pasujących odpowiedników w drugiej tabeli. Istnieją następujące rodzaje złączeń OUTER JOIN:
- LEFT JOIN – Wynik zawiera wszystkie rekordy z tabeli podanej po lewej stronie. Jeśli w tabeli podanej po prawej stronie nie ma pasujących rekordów, pola odpowiadające tej tabeli będą miały wartość NULL. Tu to złączenie zwróci cztery rekordy. Oprócz danych zwracanych przez złączenie INNER JOIN pojawi się kod BUDWEISER, ponieważ znajduje się on w lewej tabeli.
- RIGHT JOIN – Jest to odwrotność złączenia LEFT JOIN. Zawiera wszystkie rekordy z tabeli podanej po prawej stronie, a brakujące pola lewej tabeli mają wartość NULL. Tu to złączenie zwróci cztery rekordy. Oprócz danych zwracanych przez złączenie INNER JOIN pojawią się rekordy z kodami WATERCOMP.
- FULL OUTER JOIN – Złączenia tego typu zawierają wyniki złączeń LEFT JOIN i RIGHT JOIN. W zbiorze wyników znajdują się wtedy wszystkie rekordy z obu tabel (niezależnie od tego, czy w drugiej tabeli istnieją odpowiadające im rekordy). Jeśli nie istnieje pasujący rekord, w danym polu w wynikach znajduje się wartość NULL.
Przydatne linki
Jeśli chcesz poćwiczyć w praktyce SQL zapraszam do:
Na blogu polecam materiały z baz danych:
- Złączenia JOIN – Pojmij podstawy SQL !- zobacz
- Użycie GROUP BY – SQL– zobacz
- Klucze baz danych – całkowity przewodnik– zobacz
- Lista umiejętności Inżyniera danych (Data engineer)– zobacz
- Projektowanie bazy danych według zasady DRY– zobacz
Zapraszam do polubienia fanpage Facebook “Umiejętności miękkie w IT”
Ostatecznie w zamian za dostarczoną treść, proszę więcej uśmiechu w cyfrowym świecie! 😉