W SQL nie ma takiego stwierdzenia, jak pełne połączenie zewnętrzne, ale możemy użyć prostego połączenia, aby uzyskać te same wyniki lub po prostu używając instrukcji wybranych przez dwie różne tabele.
W przeciwnym razie mysql zapewnia Lewy dołącz I Prawe dołącz Aby uzyskać rekordy lub wiersze odpowiednio z prawej lub lewej tabeli. Wypróbujmy kilka różnych przykładów, aby uzyskać pożądane wyniki za pomocą odpowiednich połączeń.
Przykłady
Zanim zaczniemy uczyć się korzystania z lewego i prawego dołączenia. Dowiemy się, jak uzyskać wszystkie dane z obu tabel (wspólnych lub rzadkich) przy użyciu instrukcji Simple Select i za pomocą połączenia krzyżowego z instrukcją Select. Najpierw spróbujmy uzyskać wszystkie dane z obu tabel za pomocą instrukcji Select.
Na przykład istnieją 2 tabele, które otrzymaliśmy pod nazwą autora i książek.
Książki DESC; Autorzy DESC;Jeśli chcemy uzyskać wszystkie kolumny z obu tabel. Wybierz zapytanie będzie używane w ten sposób:
Wybierz * z książek, autorzy;Jak widać, mamy wszystkie kolumny z obu tabel, nawet nie zapewniając stanu.
Jeśli użyjemy klauzuli łączenia lub korektowego, oba przyniosą nam te same wyniki. Na przykład:
Wybierz * Z książek dołącz do autorów;Teraz spróbujmy zastosować połączenie krzyżowe:
Wybierz * z książek Cross Dołącz do autorów;Jak możesz być świadkiem, wszystkie te zapytania przynoszą nam te same wyniki.
Jednak nie jest dobrze mieć wszystkie kolumny w tak abstrakcyjnej formie. Aby uzyskać kilka konkretnych kolumn z lewej lub prawej tabeli, istnieją dwa sposoby postępowania; Jednym ze sposobów jest używanie nazw kolumn za pomocą instrukcji wybranych lub za pomocą połączeń, które pasują do Twojego wymagania.
W porządku, teraz przejdźmy do przodu, aby zrozumieć lewy dołączenie i prawe dołączenie.
Lewy dołącz
Załóżmy, że chcemy uzyskać określone kolumny, które pochodzą z tabeli książek lub wspólne między tabelą książek i autorów, w oparciu o pewne warunki, warunek jest faktycznie dostarczany przez porównanie dwóch różnych tabel. Na przykład chcemy dołączyć do dwóch tabel, książek i autorów, w których identyfikator książki jest równy identyfikatorowi autora. Możemy oczekiwać takiego wyniku, używając przyłączania lewej z instrukcją Select; Wybierz zapytanie z nazwami kolumn, które chcesz uzyskać z tabeli książek lub autorów. Wybierz zapytanie z lewym połączeniem i stanem byłoby takie:
Wybierz książki.nazwa_koksek, książki.Book_id, autorzy.autor_id,Ponieważ wspomnialiśmy o tabeli książek po lewej stronie, dołączenie otrzyma identyfikator jednego wiersza z tabeli książek i będzie szukał tego samego numeru identyfikacyjnego w tabeli autora. Jeśli znajdzie ten sam numer identyfikacyjny, pokaże również podane kolumny z tabeli autora. W przeciwnym razie pokaże NULL w kolumnach tabeli autora. Wykonajmy to zapytanie i zobaczmy wyniki.
Jak widać, mamy rzędy z obu tabel, w których identyfikator tabeli książek jest równy identyfikatorowi stołu autora. W ostatnim rzędzie możemy również zobaczyć, że w tabeli autora nie ma numeru identyfikacyjnego, więc zwrócił się przeciwko niemu.
Prawe dołącz
Podobnie, jeśli chcemy uzyskać pewne dane, z tabeli autora lub powszechne między książkami a tabelą autora, w oparciu o pewne warunki, tego rodzaju wyniki można oczekiwać za pomocą klauzuli odpowiedniego połączenia i wybierz. Wybierz zapytanie z właściwym połączeniem i stanem byłoby takie:
Wybierz książki.nazwa_koksek, książki.Book_id, autorzy.autor_id,Tym razem wiemy, że tabela autorów znajduje się po prawej stronie, więc dołączenie otrzyma identyfikator jednego wiersza z tabeli autora i poszukaj tego samego numeru identyfikacyjnego w tabeli książki. Jeśli znajdzie ten sam numer identyfikacyjny, pokaże podane kolumny z tabeli książek. Wykonanie zapytania spowodowałoby to:
Jak widać, mamy rzędy z obu tabel, w których identyfikator autora jest równy identyfikatorowi książki. Wiemy, że w tabeli książek była czwarta książka, chociaż jej nie dostaliśmy, dzieje się tak z powodu odpowiedniego połączenia.
Tak właśnie działa lewy połączenie i prawe.
Wniosek
Nauczyliśmy się i zrozumieliśmy krzyż, lewy i prawy dołączenie, a także nauczyliśmy się ich używać, aby uzyskać pożądane wyniki w MySQL. Wypróbowaliśmy także kilka różnych przykładów połączeń, aby zrozumieć koncepcje w lepszy i głęboki sposób.