Wewnętrzne dołączenie vs. Zewnętrzne dołączenie
![Wewnętrzne dołączenie vs. Zewnętrzne dołączenie](https://diffexpert.com/storage/img/images/inner-join-vs-outer-join_5.png)
- 3045
- 413
- Maksym Cieślik
W SQL, a dołączyć służy do porównywania i łączenia - dosłownie łączenia - i zwracania określonych wierszy danych z dwóch lub więcej tabel w bazie danych. Jakiś Wewnętrzne dołączenie znajduje i zwraca dopasowanie danych z tabel, a Zewnętrzne dołączenie Znajduje się i zwraca dopasowane dane I Niektóre odmienne dane z tabel.
Wewnętrzne dołączenie
Wewnętrzne połączenie koncentruje się na podobieństwie między dwoma tabelami. Podczas korzystania z wewnętrznego połączenia muszą być co najmniej pewne pasujące dane między dwiema (lub więcej) porównywanymi tabelami. Wewnętrzne tabele wyszukiwania w celu dopasowania lub nakładania się danych. Po znalezieniu go wewnętrzne połączenie łączy się i zwraca informacje w jedną nową tabelę.
Przykład wewnętrznego połączenia
Rozważmy wspólny scenariusz dwóch tabel: ceny i ilości produktów. Wspólnymi informacjami w dwóch tabelach to nazwa produktu, więc jest to kolumna logiczna do połączenia tabel NA. Istnieją niektóre produkty, które są powszechne w dwóch tabelach; inne są unikalne dla jednej z tabel i nie mają dopasowania w drugim stole.
Wewnętrzny dołącz Produkty Zwraca informacje tylko o tych produktach, które są wspólne w obu tabelach.
![](https://diffexpert.com/storage/img/images/inner-join-vs-outer-join.png)
Zewnętrzne dołączenie
Zewnętrzne połączenie zwraca zestaw rekordów (lub wierszy), które zawierają powrót wewnętrznego połączenia, ale zawiera także inne wiersze, dla których nie można znaleźć odpowiedniego dopasowania w drugiej tabeli.
Istnieją trzy rodzaje zewnętrznych połączeń:
- Lewe zewnętrzne połączenie (lub lewe dołączenie)
- Prawe zewnętrzne połączenie (lub prawe połączenie)
- Pełne połączenie zewnętrzne (lub pełne połączenie)
Każde z tych zewnętrznych połączeń odnosi się do części porównywanych, łączonych i zwracanych danych. Czasami zerowe będą tworzone w tym procesie, ponieważ niektóre dane są udostępniane, podczas gdy inne dane nie są.
Lewe zewnętrzne połączenie
Lewy zewnętrzny połączenie zwróci wszystkie dane w tabeli 1 i wszystkie udostępnione dane (więc wewnętrzna część przykładu schematu Venna), ale tylko odpowiadające dane z tabeli 2, które są prawym połączeniem.
Pozostawiony przykład dołącz
W naszej przykładowej bazie danych istnieją dwa produkty - pomarańcze i pomidory - na „lewym” (Ceny tabela), które nie mają odpowiedniego wpisu na „prawej” (tabela wielkości). W lewym połączeniu wiersze są zawarte w zestawie wyników z null w kolumnie ilościowej. Pozostałe rzędy w wyniku są takie same jak połączenie wewnętrzne.
![](https://diffexpert.com/storage/img/images/inner-join-vs-outer-join_2.png)
Właściwe połączenie zewnętrzne
Prawe zewnętrzne połączenie zwraca dane tabeli 2 i wszystkie udostępnione dane, ale tylko odpowiednie dane z tabeli 1, czyli lewy połączenie.
Prawe przykład dołącz
Podobnie jak w przykładzie złącza lewego, wyjście prawego zewnętrznego połączenia obejmuje wszystkie rzędy połączenia wewnętrznego i dwa rzędy - brokuły i squash - z „prawej” (Wielkie ilości tabela), które nie mają pasujących wpisów po lewej stronie.
![](https://diffexpert.com/storage/img/images/inner-join-vs-outer-join_3.png)
Pełne połączenie zewnętrzne
Pełne połączenie zewnętrzne lub pełne połączenie, czyli nie wspierane przez popularny system zarządzania bazą danych MySQL, łączy i zwroty Wszystko dane z dwóch lub więcej tabel, niezależnie od tego, czy są udostępnione informacje. Pomyśl o pełnym połączeniu jako po prostu powielanie wszystkich określonych informacji, ale w jednej tabeli, a nie w wielu tabelach. Tam, gdzie brakuje pasujących danych, zostanie wytworzone zerowe.
![](https://diffexpert.com/storage/img/images/inner-join-vs-outer-join_4.png)
To tylko podstawy, ale wiele rzeczy można zrobić z dołączami. Są nawet dołączenia, które mogą wykluczyć inne połączenia!
Wideo wyjaśniające wewnętrzne kontra zewnętrzne połączenia
Ten film wyjaśnia różnicę między różnymi rodzajami połączeń. Jest to uruchomione w momencie, w którym zaczyna się dyskusja na temat połączeń.