Różnice między łączeniem w lewo i w prawo

Anonim

Połączenie lewe i prawe

Kiedy mamy do czynienia z SQL, łączenie jest powszechną nazwą, która pojawia się co jakiś czas. Klauzula join pomaga w połączeniu rekordów z różnych tabel w zestawie danych. Efekt łączenia tworzy tabelę, która może być używana jako taka lub rozwijana razem z innymi. Dlatego wskazane jest zrozumienie tych złączeń i różnic między nimi, aby poznać konkretne sprzężenie, i czy w niektórych przypadkach należy wykonać prawe czy lewe.

Aby lepiej zrozumieć połączenia i ich różnice, ważne jest, aby zrozumieć rodzaje dostępnych połączeń. Zasadniczo istnieją trzy rodzaje połączeń. Te połączenia obejmują połączenie wewnętrzne, połączenie krzyżowe i połączenie zewnętrzne. Łączenie wewnętrzne zazwyczaj porównuje tabele i poda lub zwróci wynik tylko w przypadku znalezienia dopasowania. Główną funkcją połączenia wewnętrznego jest zmniejszenie rozmiaru zestawów wyników.

Łączenia krzyżowe z drugiej strony porównują dwie tabele i zwracają każdą możliwą kombinację pochodzącą z wierszy obu tabel. Liczne wyniki są oczekiwane od tego połączenia i większość z nich może nie być nawet znacząca. Dlatego należy ostrożnie ćwiczyć używanie tego sprzężenia.

Zewnętrzne sprzężenie pobiera porównanie tabel i zwraca dane, gdy dopasowanie jest dostępne. Tak jak widać w złączeniu wewnętrznym, sprzężenie zewnętrzne powiela wiersze w tabeli w przypadku, gdy widoczne są pasujące rekordy. Wyniki sprzężeń zewnętrznych są zwykle większe, a zatem zbiory danych są duże, ponieważ zestaw sam w sobie nie jest usuwany z zestawu.

Lewe sprzężenie odnosi się do przechowywania wszystkich rekordów z 1. tabeli niezależnie od wyniku i wstawiania wartości NULL, gdy wartości drugiej tabeli nie są zgodne. Natomiast prawe połączenie odnosi się do przechowywania wszystkich rekordów pochodzących z drugiej tabeli, niezależnie od wyniku, oraz użycia wartości NULL, gdy wyniki nie są zgodne z wartościami z pierwszej tabeli.

Lewe połączenie zewnętrzne zachowuje zatem wszystkie wiersze znajdujące się w "lewym" stole, niezależnie od tego, czy istnieje wiersz dopasowujący go do "prawego" stołu. Lewa tabela odnosi się zatem do tabeli, która jest pierwsza we wspólnym oświadczeniu. Powinien pojawić się po lewej stronie słowa kluczowego "dołącz" występującego na stole. Kiedy zostanie wykonane lewe sprzężenie zewnętrzne, wszystkie wiersze od lewej powinny zostać zwrócone. Niepasujące kolumny w tabeli zostaną wypełnione NULL, gdy nie będzie pasować.

Ważne jest, aby pamiętać, że w przypadku tych dwóch połączeń, wszystkie wiersze od lewej tabeli są pokazane w tabeli w lewym złączeniu zewnętrznym. Wyniki wyświetlają się niezależnie od tego, czy w prawej tabeli znajdują się pasujące kolumny. W prawym sprzężeniu zewnętrznym pokazane są wszystkie wiersze od prawej strony, niezależnie od tego, czy po lewej stronie stołu znajdują się pasujące kolumny.

Wybór, czy wybrać lewe połączenie zewnętrzne czy prawe złącze zewnętrzne, nie ma znaczenia, ponieważ pokazano te same wyniki. Funkcjonalność, jaką przedstawia prawe sprzężenie zewnętrzne, jest taka sama, jak przedstawia to lewe sprzężenie zewnętrzne. Po prostu przełączając kolejność wyświetlania tabel w instrukcji SQL, można oczekiwać podobnych wyników niezależnie od zastosowanego łączenia.

streszczenie

Dołączenia są podzielone na trzy główne grupy - wewnętrzne sprzężenie, skrzyżowanie i zewnętrzne sprzężenie

Lewe sprzężenie zewnętrzne wyświetla wszystkie wiersze od lewej strony tabeli

Prawe połączenie wyświetla wszystkie wiersze od prawej strony tabeli

Naprzemiennie sekwencja SQL może wyeliminować użycie zarówno prawego jak i lewego zewnętrznego sprzężenia, a zamiast tego użyć tylko jednego.