Złączenia możemy podzielić na dwa podstawowe typy: wewnętrzne i zewnętrzne. Wynikiem złączeń wewnętrznych są jedynie wiersze spełniające warunek. Są one także domyślnym typem złączeń.
Jako przykład weźmiemy tabelę A oraz tabelę B. Obydwie zawierają tylko jedną kolumnę o nazwie Id, dane które są tam zapisane to litery alfabetu. (Przedstawione zostały w dwóch formach w celu łatwiejszego zrozumienia)
Złączenie wewnętrzne
INNER JOIN lub po prostu JOIN - wynikiem złączenia będą jedynie te wiersze z obu tabel, które udało się dopasować na podstawie zadanego warunku. Inaczej mówiąc efektem będzie część wspólna.
SELECT *
FROM TabelaA a
JOIN TabelaB b on a.Id = b.Id
CROSS JOIN - wynikiem złączenia będą wszystkie wiersze z tabeli A połączone ze wszystkimi wierszami tabeli B (iloczyn kartezjański).
SELECT *
FROM TabelaA a
CROSS JOIN TabelaB b
OUTER JOIN - złączenia zewnętrzne
LEFT OUTER JOIN lub po prostu LEFT JOIN - wynikiem złączenia będą wszystkie wiersze z tabeli A oraz dopasowane do nich wiersze z tabeli B na podstawie zadanego warunku. W przypadku, gdy nie będzie możliwości dopasowania rekordu z tabeli B, przypisana zostanie wartość NULL.
SELECT *
FROM TabelaA a
LEFT JOIN TabelaB b on a.Id = b.Id
RIGHT OUTER JOIN lub po prostu RIGHT JOIN - wynikiem złączenia będą wszystkie wiersze z tabeli B oraz dopasowane do nich wiersze z tabeli A na podstawie zadanego warunku. W przypadku, gdy nie będzie możliwości dopasowania rekordu z tabeli A, przypisana zostanie wartość NULL.
SELECT *
FROM TabelaA a
RIGHT JOIN TabelaB b on a.Id = b.Id
FULL OUTER JOIN lub po prostu FULL JOIN - wynikiem złączenia będą wszystkie wiersze z tabeli A oraz B. Jeśli będzie to możliwe, nastąpi dopasowanie wierszy z obu tabel na podstawie zadanego warunku. W przypadku gdy dopasowanie wierszy nie będzie możliwe, jako wartość z drugiej tabel zostanie przypisana wartość NULL.
SELECT *
FROM TabelaA a
FULL JOIN TabelaB b on a.Id = b.Id
Korzystając z serwisu akceptujesz regulamin
oraz politykę prywatności.
Używamy informacji zapisanych za pomocą plików cookies w celu zapewnienia maksymalnej wygody w korzystaniu z naszego serwisu.
Jeśli nie wyrażasz zgody, ustawienia dotyczące plików cookies możesz zmienić w swojej przeglądarce.
Złączenia możemy podzielić na dwa podstawowe typy: wewnętrzne i zewnętrzne. Wynikiem złączeń wewnętrznych są jedynie wiersze spełniające warunek. Są one także domyślnym typem złączeń.
Jako przykład weźmiemy tabelę A oraz tabelę B. Obydwie zawierają tylko jedną kolumnę o nazwie Id, dane które są tam zapisane to litery alfabetu.
(Przedstawione zostały w dwóch formach w celu łatwiejszego zrozumienia)
Złączenie wewnętrzne
INNER JOIN lub po prostu JOIN - wynikiem złączenia będą jedynie te wiersze z obu tabel, które udało się dopasować na podstawie zadanego warunku. Inaczej mówiąc efektem będzie część wspólna.
CROSS JOIN - wynikiem złączenia będą wszystkie wiersze z tabeli A połączone ze wszystkimi wierszami tabeli B (iloczyn kartezjański).
OUTER JOIN - złączenia zewnętrzne
LEFT OUTER JOIN lub po prostu LEFT JOIN - wynikiem złączenia będą wszystkie wiersze z tabeli A oraz dopasowane do nich wiersze z tabeli B na podstawie zadanego warunku. W przypadku, gdy nie będzie możliwości dopasowania rekordu z tabeli B, przypisana zostanie wartość NULL.
RIGHT OUTER JOIN lub po prostu RIGHT JOIN - wynikiem złączenia będą wszystkie wiersze z tabeli B oraz dopasowane do nich wiersze z tabeli A na podstawie zadanego warunku. W przypadku, gdy nie będzie możliwości dopasowania rekordu z tabeli A, przypisana zostanie wartość NULL.
FULL OUTER JOIN lub po prostu FULL JOIN - wynikiem złączenia będą wszystkie wiersze z tabeli A oraz B. Jeśli będzie to możliwe, nastąpi dopasowanie wierszy z obu tabel na podstawie zadanego warunku. W przypadku gdy dopasowanie wierszy nie będzie możliwe, jako wartość z drugiej tabel zostanie przypisana wartość NULL.