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;