inner join vs outer join
Łączenie wewnętrzne i łączenie zewnętrzne: Przygotuj się do zbadania dokładnych różnic między łączeniem wewnętrznym i zewnętrznym
Zanim zbadamy różnice między złączeniem wewnętrznym a złączeniem zewnętrznym, zobaczmy najpierw, czym jest SQL JOIN?
Klauzula łączenia służy do łączenia rekordów lub manipulowania rekordami z dwóch lub większej liczby tabel za pomocą warunku łączenia. Warunek sprzężenia wskazuje, w jaki sposób kolumny z każdej tabeli są dopasowywane do siebie.
Łączenie jest oparte na powiązanej kolumnie między tymi tabelami. Najczęstszym przykładem jest sprzężenie między dwiema tabelami za pośrednictwem kolumny klucza podstawowego i kolumny klucza obcego.
Załóżmy, że mamy tabelę zawierającą wynagrodzenie pracowników i jest inna tabela, która zawiera szczegóły dotyczące pracowników.
W takim przypadku będzie wspólna kolumna, taka jak identyfikator pracownika, która połączy te dwie tabele. Ta kolumna Identyfikator pracownika byłaby kluczem podstawowym tabel szczegółów pracowników i kluczem obcym w tabeli wynagrodzeń pracowników.
Bardzo ważne jest, aby mieć wspólny klucz między dwoma podmiotami. Możesz myśleć o tabeli jako o encji, a klucz jako o wspólnym łączu między dwiema tabelami, które jest używane do operacji łączenia.
najlepsze oprogramowanie do konserwacji systemu dla systemu Windows 10
Zasadniczo istnieją dwa typy łączenia w SQL, tj. Połączenie wewnętrzne i połączenie zewnętrzne . Złącze zewnętrzne dzieli się dalej na trzy typy, tj. Lewe połączenie zewnętrzne, prawe połączenie zewnętrzne i pełne połączenie zewnętrzne.
W tym artykule zobaczymy różnicę między Połączenie wewnętrzne i połączenie zewnętrzne szczegółowo. Zachowamy połączenia krzyżowe i nierówne poza zakresem tego artykułu.
Czego się nauczysz:
- Co to jest połączenie wewnętrzne?
- Co to jest łączenie zewnętrzne?
- Różnica między połączeniem wewnętrznym i zewnętrznym
- Występ
- Połączenie wewnętrzne i zewnętrzne MS Access
- Łączenie lewostronne vs łączenie zewnętrzne lewostronne
- Połączenie lewe zewnętrzne vs prawe połączenie zewnętrzne
- Różnica między łączeniem wewnętrznym a łączeniem zewnętrznym w formacie tabelarycznym
- Połączenie wewnętrzne i zewnętrzne vs Unia
- Wniosek
- rekomendowane lektury
Co to jest połączenie wewnętrzne?
Łączenie wewnętrzne zwraca tylko te wiersze, które mają pasujące wartości w obu tabelach (rozważamy tutaj, że sprzężenie jest wykonywane między dwiema tabelami).
Co to jest łączenie zewnętrzne?
Połączenie zewnętrzne obejmuje pasujące wiersze, a także niektóre niepasujące wiersze między dwiema tabelami. Sprzężenie zewnętrzne zasadniczo różni się od sprzężenia wewnętrznego sposobem, w jaki obsługuje warunek fałszywego dopasowania.
Istnieją 3 typy połączeń zewnętrznych:
- Lewe połączenie zewnętrzne : Zwraca wszystkie wiersze z LEFT tabeli i pasujące rekordy między obiema tabelami.
- Prawe połączenie zewnętrzne : Zwraca wszystkie wiersze z PRAWEJ tabeli i pasujące rekordy między obiema tabelami.
- Pełne połączenie zewnętrzne : Łączy wynik połączenia lewego zewnętrznego połączenia i prawego zewnętrznego połączenia.
Różnica między połączeniem wewnętrznym i zewnętrznym
[wizerunek źródło ]
Jak pokazano na powyższym diagramie, istnieją dwie jednostki, tj. Tabela 1 i tabela 2, a obie tabele mają wspólne dane.
Łączenie wewnętrzne zwróci wspólny obszar między tymi tabelami (zielony zacieniony obszar na powyższym diagramie), tj. Wszystkie rekordy, które są wspólne między tabelami 1 i 2.
Lewe sprzężenie zewnętrzne zwróci wszystkie wiersze z tabeli 1 i tylko te wiersze z tabeli 2, które są również wspólne dla tabeli 1. Prawe połączenie zewnętrzne zrobi dokładnie odwrotnie. Poda wszystkie rekordy z tabeli 2 i tylko odpowiadające im pasujące rekordy z tabeli 1.
Ponadto pełne połączenie zewnętrzne da nam wszystkie rekordy z tabeli 1 i tabeli 2.
Zacznijmy od przykładu, aby to wyjaśnić.
Załóżmy, że mamy dwa stoły: EmpDetails i EmpSalary .
Tabela EmpDetails:
Numer identyfikacyjny pracownika | Imię i nazwisko pracownika |
7 | Lilia |
jeden | Jan |
dwa | Samantha |
3 | Żaden |
4 | Jedwabisty |
5 | Baran |
6 | Arpit |
8 | Sita |
9 | Farah |
10 | Nocnik |
Tabela EmpSalary:
Numer identyfikacyjny pracownika | Imię i nazwisko pracownika | EmployeeSalary |
---|---|---|
jedenaście | Róża | 90000 |
jeden | Jan | 50 000 |
dwa | Samantha | 120000 |
3 | Żaden | 75000 |
4 | Jedwabisty | 25000 |
5 | Baran | 150000 |
6 | Arpit | 80000 |
12 | Sakshi | 45000 |
13 | Jacek | 250000 |
Zróbmy łączenie wewnętrzne na tych dwóch tabelach i obserwujmy wynik:
Pytanie:
SELECT EmpDetails. EmployeeID, EmpDetails. EmployeeName, EmpSalary. EmployeeSalary FROM EmpDetails INNER JOIN EmpSalary ON EmpDetails. EmployeeID = EmpSalary. EmployeeID;
Wynik:
Numer identyfikacyjny pracownika | Imię i nazwisko pracownika | EmployeeSalary |
---|---|---|
7 | Lilia | ZERO |
jeden | Jan | 50 000 |
dwa | Samantha | 120000 |
3 | Żaden | 75000 |
4 | Jedwabisty | 25000 |
5 | Baran | 150000 |
6 | Arpit | 80000 |
W powyższym zestawie wyników możesz zobaczyć, że Inner Join zwróciło pierwsze 6 rekordów, które były obecne zarówno w EmpDetails, jak i EmpSalary, które miały pasujący klucz, tj.PracownikID. W związku z tym, jeśli A i B są dwoma jednostkami, połączenie wewnętrzne zwróci zestaw wyników, który będzie równy „Rekordy w A i B”, na podstawie pasującego klucza.
Zobaczmy teraz, co zrobi lewe połączenie zewnętrzne.
Pytanie:
SELECT EmpDetails. EmployeeID, EmpDetails. EmployeeName, EmpSalary. EmployeeSalary FROM EmpDetails LEFT JOIN EmpSalary ON EmpDetails. EmployeeID = EmpSalary. EmployeeID;
Wynik:
Numer identyfikacyjny pracownika | Imię i nazwisko pracownika | EmployeeSalary |
---|---|---|
jeden | Jan | 50 000 |
dwa | Samantha | 120000 |
3 | Żaden | 75000 |
4 | Jedwabisty | 25000 |
5 | Baran | 150000 |
6 | Arpit | 80000 |
8 | Sita | ZERO |
9 | Farah | ZERO |
10 | Nocnik | ZERO |
W powyższym zestawie wyników widać, że lewe sprzężenie zewnętrzne zwróciło wszystkie 10 rekordów z tabeli LEFT, tj. Tabeli EmpDetails, a ponieważ pierwsze 6 rekordów jest zgodnych, zwróciło wynagrodzenie pracownika dla tych pasujących rekordów.
Ponieważ pozostałe rekordy nie mają pasującego klucza w PRAWEJ tabeli, tj. Tabeli EmpSalary, zwrócił on NULL odpowiadający tym. Ponieważ Lily, Sita, Farah i Jerry nie mają pasującego identyfikatora pracownika w tabeli EmpSalary, ich wynagrodzenie jest wyświetlane jako NULL w zestawie wyników.
Tak więc, jeśli A i B są dwoma encjami, lewe sprzężenie zewnętrzne zwróci zestaw wyników, który będzie równy „Rekordy w A NOT B” na podstawie pasującego klucza.
Przyjrzyjmy się teraz, co robi prawe połączenie zewnętrzne.
Pytanie:
SELECT EmpDetails. EmployeeID, EmpDetails. EmployeeName, EmpSalary. EmployeeSalary FROM EmpDetails RIGHT join EmpSalary ON EmpDetails. EmployeeID = EmpSalary. EmployeeID;
Wynik:
Numer identyfikacyjny pracownika | Imię i nazwisko pracownika | EmployeeSalary |
---|---|---|
ZERO | ZERO | 90000 |
jeden | Jan | 50 000 |
dwa | Samantha | 120000 |
3 | Żaden | 75000 |
4 | Jedwabisty | 25000 |
5 | Baran | 150000 |
6 | Arpit | 80000 |
ZERO | ZERO | 250000 |
ZERO | ZERO | 250000 |
W powyższym zestawie wyników można zobaczyć, że prawe połączenie zewnętrzne wykonało dokładnie odwrotność połączenia lewego. Zwrócił wszystkie pensje z odpowiedniej tabeli, czyli tabeli EmpSalary.
Ale ponieważ Rose, Sakshi i Jack nie mają pasującego identyfikatora pracownika w lewej tabeli, tj. Tabeli EmpDetails, mamy ich identyfikator pracownika i nazwę pracownika jako NULL z lewej tabeli.
Tak więc, jeśli A i B są dwoma jednostkami, to prawe sprzężenie zewnętrzne zwróci zestaw wyników, który będzie równy „Rekordy w B, a NIE A” na podstawie pasującego klucza.
Zobaczmy również, jaki będzie zestaw wyników, jeśli wykonamy operację wyboru na wszystkich kolumnach w obu tabelach.
Pytanie:
SELECT * FROM EmpDetails RIGHT JOIN EmpSalary ON EmpDetails. EmployeeID = EmpSalary. EmployeeID;
Wynik:
Numer identyfikacyjny pracownika | Imię i nazwisko pracownika | Numer identyfikacyjny pracownika | Imię i nazwisko pracownika | EmployeeSalary |
---|---|---|---|---|
ZERO | ZERO | jedenaście | Róża | 90000 |
jeden | Jan | jeden | Jan | 50 000 |
dwa | Samantha | dwa | Samantha | 120000 |
3 | Żaden | 3 | Żaden | 75000 |
4 | Jedwabisty | 4 | Jedwabisty | 25000 |
5 | Baran | 5 | Baran | 150000 |
6 | Arpit | 6 | Arpit | 80000 |
ZERO | ZERO | 12 | Sakshi | 250000 |
ZERO | ZERO | 13 | Jacek | 250000 |
Teraz przejdźmy do Full Join.
Pełne sprzężenie zewnętrzne jest wykonywane, gdy chcemy mieć wszystkie dane z obu tabel, niezależnie od tego, czy są zgodne, czy nie. Dlatego jeśli chcę wszystkich pracowników, nawet jeśli nie znajdę pasującego klucza, uruchomię zapytanie, jak pokazano poniżej.
Pytanie:
SELECT * FROM EmpDetails FULL JOIN EmpSalary ON EmpDetails. EmployeeID = EmpSalary. EmployeeID;
Wynik:
Numer identyfikacyjny pracownika | Imię i nazwisko pracownika | Numer identyfikacyjny pracownika | Imię i nazwisko pracownika | EmployeeSalary |
---|---|---|---|---|
7 | Lilia | ZERO | ZERO | ZERO |
jeden | Jan | jeden | Jan | 50 000 |
dwa | Samantha | dwa | Samantha | 120000 |
3 | Żaden | 3 | Żaden | 75000 |
4 | Jedwabisty | 4 | Jedwabisty | 25000 |
5 | Baran | 5 | Baran | 150000 |
6 | Arpit | 6 | Arpit | 80000 |
8 | Sita | ZERO | ZERO | ZERO |
9 | Farah | ZERO | ZERO | ZERO |
10 | Nocnik | ZERO | ZERO | ZERO |
ZERO | ZERO | jedenaście | Róża | 90000 |
ZERO | ZERO | 12 | Sakshi | 250000 |
ZERO | ZERO | 13 | Jacek | 250000 |
W powyższym zestawie wyników widać, że ponieważ pierwsze sześć rekordów jest zgodnych w obu tabelach, otrzymaliśmy wszystkie dane bez wartości NULL. Kolejne cztery rekordy istnieją w lewej tabeli, ale nie w prawej tabeli, dlatego odpowiednie dane w prawej tabeli mają wartość NULL.
Ostatnie trzy rekordy istnieją w prawej tabeli, a nie w lewej tabeli, stąd mamy NULL w odpowiednich danych z lewej tabeli. Tak więc, jeśli A i B są dwoma jednostkami, pełne sprzężenie zewnętrzne zwróci zestaw wyników, który będzie równy „Rekordy w A AND B”, niezależnie od pasującego klucza.
Teoretycznie jest to połączenie łączenia lewostronnego i łączenia prawego.
Występ
Porównajmy łączenie wewnętrzne z łączeniem zewnętrznym z lewej na serwerze SQL. Mówiąc o szybkości działania, lewy zewnętrzny JOIN nie jest oczywiście szybszy niż złączenie wewnętrzne.
Zgodnie z definicją, sprzężenie zewnętrzne, czy to lewe, czy prawe, musi wykonać całą pracę sprzężenia wewnętrznego wraz z dodatkową pracą zerową - przedłużeniem wyników. Oczekuje się, że sprzężenie zewnętrzne zwróci większą liczbę rekordów, co dodatkowo zwiększa całkowity czas wykonania tylko z powodu większego zestawu wyników.
Zatem połączenie zewnętrzne jest wolniejsze niż połączenie wewnętrzne.
Ponadto mogą istnieć pewne sytuacje, w których lewe sprzężenie będzie szybsze niż wewnętrzne sprzężenie, ale nie możemy kontynuować ich zastępowania, ponieważ lewe zewnętrzne sprzężenie nie jest funkcjonalnie równoważne ze sprzężeniem wewnętrznym.
Omówmy przypadek, w którym lewe połączenie może być szybsze niż wewnętrzne połączenie. Jeśli tabele biorące udział w operacji łączenia są zbyt małe, powiedzmy, że mają mniej niż 10 rekordów, a tabele nie mają wystarczających indeksów, aby pokryć zapytanie, w takim przypadku łączenie lewostronne jest zwykle szybsze niż łączenie wewnętrzne.
Utwórzmy dwie poniższe tabele i wykonajmy INNER JOIN i LEFT OUTER JOIN między nimi jako przykład:
CREATE TABLE #Table1 ( ID int NOT NULL PRIMARY KEY, Name varchar(50) NOT NULL ) INSERT #Table1 (ID, Name) VALUES (1, 'A') INSERT #Table1 (ID, Name) VALUES (2, 'B') INSERT #Table1 (ID, Name) VALUES (3, 'C') INSERT #Table1 (ID, Name) VALUES (4, 'D') INSERT #Table1 (ID, Name) VALUES (5, 'E') CREATE TABLE #Table2 ( ID int NOT NULL PRIMARY KEY, Name varchar(50) NOT NULL ) INSERT #Table2 (ID, Name) VALUES (1, 'A') INSERT #Table2 (ID, Name) VALUES (2, 'B') INSERT #Table2 (ID, Name) VALUES (3, 'C') INSERT #Table2 (ID, Name) VALUES (4, 'D') INSERT #Table2 (ID, Name) VALUES (5, 'E') SELECT * FROM #Table1 t1 INNER JOIN #Table2 t2 ON t2.Name = t1.Name
ID | Nazwa | ID | Nazwa | |
---|---|---|---|---|
Poniżej znajduje się wizualizacja sprzężenia wewnętrznego: ![]() | Poniżej znajduje się wizualizacja sprzężenia zewnętrznego ![]() | |||
jeden | jeden | DO | jeden | DO |
dwa | dwa | b | dwa | b |
3 | 3 | do | 3 | do |
4 | 4 | re | 4 | re |
5 | 5 | JEST | 5 | JEST |
SELECT * FROM (SELECT 38 AS bah) AS foo JOIN (SELECT 35 AS bah) AS bar ON (55=55);
ID | Nazwa | ID | Nazwa | |
---|---|---|---|---|
jeden | jeden | DO | jeden | DO |
dwa | dwa | b | dwa | b |
3 | 3 | do | 3 | do |
4 | 4 | re | 4 | re |
5 | 5 | JEST | 5 | JEST |
Jak widać powyżej, oba zapytania zwróciły ten sam zestaw wyników. W takim przypadku, jeśli przejrzysz plan wykonania obu zapytań, zobaczysz, że sprzężenie wewnętrzne kosztowało więcej niż sprzężenie zewnętrzne. Dzieje się tak, ponieważ w przypadku złączenia wewnętrznego serwer SQL wykonuje dopasowanie skrótu, podczas gdy wykonuje zagnieżdżone pętle dla złączenia lewego.
Dopasowanie skrótu jest zwykle szybsze niż zagnieżdżone pętle. Ale w tym przypadku, ponieważ liczba wierszy jest tak mała i nie ma indeksu do użycia (tak jak robimy złączenie w kolumnie z nazwą), operacja mieszania okazała się najdroższym zapytaniem ze złączeniem wewnętrznym.
Jeśli jednak zmienisz pasujący klucz w zapytaniu łączącym z Nazwa na ID i jeśli w tabeli jest duża liczba wierszy, zobaczysz, że sprzężenie wewnętrzne będzie szybsze niż lewe sprzężenie zewnętrzne.
Połączenie wewnętrzne i zewnętrzne MS Access
Gdy używasz wielu źródeł danych w kwerendzie MS Access, stosujesz SPRZĘŻENIA, aby kontrolować rekordy, które chcesz zobaczyć, w zależności od tego, jak źródła danych są ze sobą połączone.
W sprzężeniu wewnętrznym tylko powiązane tabele z obu tabel są łączone w jeden zestaw wyników. Jest to domyślne połączenie w programie Access i najczęściej używane. Jeśli zastosujesz sprzężenie, ale nie określisz jawnie, jakiego typu jest to sprzężenie, program Access zakłada, że jest to sprzężenie wewnętrzne.
W połączeniach zewnętrznych wszystkie powiązane dane z obu tabel są prawidłowo łączone, a także wszystkie pozostałe wiersze z jednej tabeli. W pełnych połączeniach zewnętrznych wszystkie dane są łączone, gdy tylko jest to możliwe.
Łączenie lewostronne vs łączenie zewnętrzne lewostronne
Na serwerze SQL słowo kluczowe external jest opcjonalne, gdy stosuje się lewe sprzężenie zewnętrzne. W związku z tym nie ma znaczenia, czy napiszesz „LEFT OUTER JOIN” lub „LEFT JOIN”, ponieważ oba dadzą ten sam wynik.
LEFT JOIN B jest odpowiednikiem składni A LEFT OUTER JOIN B.
c ++ char * na int
Poniżej znajduje się lista równoważnych składni na serwerze SQL:
[wizerunek źródło ]
Połączenie lewe zewnętrzne vs prawe połączenie zewnętrzne
Widzieliśmy już tę różnicę w tym artykule. Możesz odnieść się do zapytań Left Outer Join i Right Outer Join oraz zestawu wyników, aby zobaczyć różnicę.
Główna różnica między łączeniem lewym i łączeniem prawym polega na włączaniu niedopasowanych wierszy. Lewe sprzężenie zewnętrzne zawiera niedopasowane wiersze z tabeli, która znajduje się po lewej stronie klauzuli join, natomiast prawe sprzężenie zewnętrzne zawiera niedopasowane wiersze z tabeli, która znajduje się po prawej stronie klauzuli join.
Ludzie pytają, które z nich jest lepsze, np. Lewe połączenie czy prawe połączenie? Zasadniczo są to operacje tego samego typu, z wyjątkiem odwróconych argumentów. Dlatego, gdy pytasz, którego sprzężenia użyć, w rzeczywistości pytasz, czy napisać plik za. To tylko kwestia preferencji.
Ogólnie rzecz biorąc, ludzie wolą używać złączenia lewostronnego w zapytaniach SQL. Proponuję zachować konsekwencję w sposobie, w jaki piszesz zapytanie, aby uniknąć nieporozumień w interpretacji zapytania.
Jak dotąd widzieliśmy wszystko o złączeniach wewnętrznych i wszystkich typach złączeń zewnętrznych. Szybko podsumujmy różnicę między złączem wewnętrznym a złączem zewnętrznym.
Różnica między łączeniem wewnętrznym a łączeniem zewnętrznym w formacie tabelarycznym
Połączenie wewnętrzne | Połączenie zewnętrzne |
---|---|
Zwraca tylko te wiersze, które mają pasujące wartości w obu tabelach. | Obejmuje pasujące wiersze, a także niektóre niepasujące wiersze między dwiema tabelami. |
W przypadku, gdy istnieje duża liczba wierszy w tabelach i istnieje indeks do użycia, funkcja INNER JOIN jest generalnie szybsza niż OUTER JOIN. | Ogólnie rzecz biorąc, OUTER JOIN jest wolniejsze niż INNER JOIN, ponieważ musi zwrócić większą liczbę rekordów w porównaniu do INNER JOIN. Jednak mogą istnieć określone scenariusze, w których DOŁĄCZANIE ZEWNĘTRZNE jest szybsze. |
Jeśli dopasowanie nie zostanie znalezione, nic nie zwraca. | Jeśli dopasowanie nie zostanie znalezione, w zwracanej wartości kolumny umieszczana jest wartość NULL. |
Użyj INNER JOIN, jeśli chcesz wyszukać szczegółowe informacje z dowolnej określonej kolumny. | Użyj OUTER JOIN, jeśli chcesz wyświetlić listę wszystkich informacji w obu tabelach. |
INNER JOIN działa jak filtr. Aby połączenie wewnętrzne zwróciło dane, musi istnieć dopasowanie w obu tabelach. | Działają jak dodatki do danych. |
Niejawna notacja sprzężenia istnieje dla sprzężenia wewnętrznego, która rejestruje tabele do łączenia w sposób oddzielony przecinkami w klauzuli FROM. Przykład: SELECT * FROM produkt, kategoria WHERE product.CategoryID = category.CategoryID; | Nie ma niejawnej notacji sprzężenia dla sprzężenia zewnętrznego. |
Połączenie wewnętrzne i zewnętrzne vs Unia
Czasami mylimy Join i Union i jest to również jedno z najczęściej zadawanych pytań w Wywiady SQL . Widzieliśmy już różnicę między sprzężeniem wewnętrznym a sprzężeniem zewnętrznym. Zobaczmy teraz, czym JOIN różni się od UNION.
UNION umieszcza po sobie wiersz zapytań, podczas gdy join tworzy produkt kartezjański i dzieli go na podzbiory. Zatem UNION i JOIN to zupełnie różne operacje.
Uruchommy poniższe dwa zapytania w MySQL i zobaczmy ich wyniki.
Zapytanie UNION:
SELECT 28 AS bah UNION SELECT 35 AS bah;
Wynik:
Bah | |
---|---|
jeden | 28 |
dwa | 35 |
DOŁĄCZ Zapytanie:
SELECT * FROM (SELECT 38 AS bah) AS foo JOIN (SELECT 35 AS bah) AS bar ON (55=55);
Wynik:
bla | Bar | |
---|---|---|
jeden | 38 | 35 |
Operacja UNION umieszcza wynik dwóch lub więcej zapytań w jednym zestawie wyników. Ten zestaw wyników zawiera wszystkie rekordy, które są zwracane przez wszystkie zapytania zaangażowane w UNION. Zatem w zasadzie UNIA łączy razem dwa zestawy wyników.
Operacja łączenia pobiera dane z dwóch lub większej liczby tabel na podstawie logicznych relacji między tymi tabelami, tj. Na podstawie warunku łączenia. W zapytaniu łączącym dane z jednej tabeli są używane do wybierania rekordów z innej tabeli. Pozwala łączyć podobne dane, które są obecne w różnych tabelach.
Aby to bardzo łatwo zrozumieć, można powiedzieć, że UNION łączy wiersze z dwóch tabel, podczas gdy złączenie łączy kolumny z dwóch lub więcej tabel. Tak więc oba są używane do łączenia danych z n tabel, ale różnica polega na sposobie łączenia danych.
Poniżej znajdują się obrazowe reprezentacje UNION i JOIN.
Powyższe jest obrazową reprezentacją operacji łączenia, pokazującą, że każdy rekord w zestawie wyników zawiera kolumny z obu tabel, tj. Tabeli A i tabeli B. Ten wynik jest zwracany na podstawie warunku łączenia zastosowanego w zapytaniu.
Łączenie jest generalnie wynikiem denormalizacji (przeciwieństwo normalizacji) i używa klucza obcego jednej tabeli do wyszukania wartości kolumn poprzez zastosowanie klucza podstawowego w innej tabeli.
Powyższe jest obrazową reprezentacją operacji UNION, która pokazuje, że każdy rekord w zestawie wyników jest wierszem z jednej z dwóch tabel. W ten sposób wynik UNII połączył wiersze z tabeli A i tabeli B.
Dalsza lektura = >> MySQL UNION wyjaśnione przykładami
Wniosek
W tym artykule widzieliśmy główne różnice między Łączenie wewnętrzne i łączenie zewnętrzne w języku SQL . Widzieliśmy również klasyfikację łączenia zewnętrznego, tj.Lewy, prawy i pełny. Widzieliśmy, jak działają te typy złączeń i jak się od siebie różnią.
Dokonaliśmy również porównania wydajności między tymi typami złączeń. Omówiliśmy również, czym różni się złączenie od związku.
Przeczytaj także = >> Typy złączeń MySQL
Mam nadzieję, że ten artykuł pomógłby w wyjaśnieniu wątpliwości dotyczących różnic między różnymi typami złączeń. Jesteśmy pewni, że to rzeczywiście sprawi, że zdecydujesz, który typ łączenia wybrać w oparciu o pożądany zestaw wyników.
rekomendowane lektury
- Dokładna różnica między weryfikacją a walidacją z przykładami
- Modem kontra router: poznaj dokładną różnicę
- Różnica między SQL a MySQL i SQL Server (z przykładami)
- Python DateTime Tutorial z przykładami
- LAN Vs WAN Vs MAN: Dokładna różnica między typami sieci
- Polecenie Cut w systemie Unix z przykładami
- Składnia poleceń Unix Cat, opcje z przykładami
- Wykorzystanie kursora w MongoDB z przykładami