Informacje o nowych artykułach oraz akcjach edukacyjnych prosto na Twojej skrzynce e-mail!

Złączenia zewnętrzne (JOIN) w SQL

Złączenia zewnętrzne w SQL nie muszą być skomplikowane i trudne w zrozumieniu, przyjrzyjmy się kilku podstawowym przykładom i ich graficznej interpretacji…

W rozbudowanych systemach informatycznych przeważnie zawsze dane mamy zapisane w różnych tabelach. Twórcy SQL przewidzieli taki stan rzeczy i zapewnili programistą szereg możliwości różnego złączania tabel. Przy tworzeniu kwerend mamy do dyspozycji takie złączenia jak:

  • FULL OUTER JOIN,
  • RIGHT OUTER JOIN,
  • LEFT OUTER JOIN,
  • CROSS JOIN.

Przykład graficzny:

Przykłady:

FULL OUTER JOIN

Zwraca wszystkie wiersze obu tabel, nawet te które nie spełniają warunku złączenia:

SELECT tabela1.kolumna1, tabela2.kolumna2 FROM tabela1 FULL OUTER JOIN tabela2 ON tabela1.ID = tabela2.ID;

RIGHT OUTER JOIN

Zwraca wiersze z lewej tabeli pasujące do złączenia oraz wszystkie wiersze z prawej tabeli (nawet te nie spełniające warunku złączenia), w przypadku wierszy z prawej (drugiej) tabeli nie pasujących do złączenia przy danych z lewej  tabeli będzie wstawiony null:

SELECT tabela1.kolumna1, tabela2.kolumna2 FROM tabela1 RIGHT OUTER JOIN tabela2 ON tabela1.ID = tabela2.ID;

LEFT OUTER JOIN

W wyniku otrzymujemy wszystkie wiersze z lewej (pierwszej) tabeli, nawet te nie pasujące do złączenia oraz wiersze z prawej tabeli. Jeżeli jakiś wiersz nie pasował do złączenia to przy danych z prawej (drugiej) tabeli będzie wstawiony null:

SELECT tabela1.kolumna1, tabela2.kolumna2 FROM tabela1 LEFT OUTER JOIN tabela2 ON tabela1.ID = tabela2.ID;

CROSS JOIN

Iloczyn kartezjański czyli wszystkie możliwe kombinacje wierszy z obu tabel. Uwaga: przy tym złączeniu nie określa się warunku złączenia.

SELECT tabela1.kolumna1, tabela2.kolumna2 FROM tabela1 CROSS JOIN tabela2;

Spodobało się?

Jeśli tak, to zarejestruj się do newslettera aby otrzymywać informacje nowych artykułach oraz akcjach edukacyjnych. Gwarantuję 100% satysfakcji i żadnego spamowania!

, , , , , , , , ,

Dodaj komentarz

Odpowiedz

Twój adres e-mail nie zostanie opublikowany.

Pin It on Pinterest