MySQL MariaDB

Połączenie zewnętrzne MySQL

Połączenie zewnętrzne MySQL

MySQL dostarcza wiele poleceń, które są potrzebne podczas zarządzania bazą danych. Na przykład często potrzebujemy uzyskać dane z różnych tabel w zależności od pewnego warunku. MySQL udostępnia następnie różne typy złączeń, aby uzyskać pożądane rezultaty. Nauczmy się LEFT JOIN i RIGHT JOIN w MySQL.

W SQL nie ma takiej instrukcji jak FULL OUTER JOIN, ale możemy użyć prostego JOIN, aby uzyskać te same wyniki lub po prostu użyć instrukcji SELECT w dwóch różnych tabelach.

W przeciwnym razie MySQL zapewnia LEWE DOŁĄCZ i WŁAŚCIWE DOŁĄCZENIE aby pobrać rekordy lub wiersze odpowiednio z prawej lub lewej tabeli. Wypróbujmy kilka różnych przykładów, aby uzyskać pożądane wyniki przy użyciu odpowiednich złączeń.

Przykłady

Zanim zaczniemy uczyć się korzystania z LEWEJ i PRAWEJ ŁĄCZY. Dowiemy się, jak uzyskać wszystkie dane z obu tabel (zarówno powszechnych, jak i nietypowych) za pomocą prostej instrukcji SELECT i używając CROSS JOIN z instrukcją SELECT. Najpierw spróbujmy pobrać wszystkie dane z obu tabel za pomocą instrukcji SELECT.

Na przykład są 2 tabele, które otrzymaliśmy z nazwiskiem autora i książek.

książki DESC;

autorzy DESC;

Jeśli chcemy uzyskać wszystkie kolumny z obu tabel. Zapytanie SELECT będzie używane w następujący sposób:

WYBIERZ * Z książek, autorów;

Jak widać, mamy wszystkie kolumny z obu tabel bez podania warunku.

Jeśli użyjemy klauzuli JOIN lub CROSS JOIN, obie przyniosą nam te same wyniki. Na przykład:

WYBIERZ * Z książek DOŁĄCZ autorów;

Teraz spróbujmy zastosować CROSS JOIN:

WYBIERZ * Z książek CROSS JOIN autorów;

Jak widać, wszystkie te zapytania przynoszą nam takie same wyniki.

Jednak nie jest dobrze mieć wszystkie kolumny w tak abstrakcyjnej formie. Tak więc, aby uzyskać kilka konkretnych kolumn z lewej lub prawej tabeli, można postępować na dwa sposoby; jednym ze sposobów jest użycie nazw kolumn za pomocą instrukcji SELECT lub użycie złączeń, które spełniają twoje wymagania.

W porządku, teraz przejdźmy dalej, aby zrozumieć LEFT JOIN i RIGHT JOIN.

LEWE POŁĄCZENIE

Załóżmy, że chcemy uzyskać określone kolumny, które pochodzą z tabeli książek lub są wspólne dla tabeli książek i autorów, w zależności od pewnego warunku, warunek jest faktycznie zapewniany przez porównanie dwóch różnych tabel. Na przykład chcemy połączyć dwie tabele, książki i autorów, w których identyfikator książki jest równy identyfikatorowi autora. Takiego wyniku możemy się spodziewać używając instrukcji LEFT Join z SELECT; Zapytanie SELECT z nazwami kolumn, które chcesz uzyskać z tabeli książek lub autorów. Zapytanie SELECT z LEFT JOIN i warunkiem wyglądałoby tak:

WYBIERZ książki.książka_nazwa, książki,.book_id, autorzy.identyfikator_autora,
autorski.autor_fname, autorzy.imie_autora
Z książek
LEFT JOIN autorzy
ON książki.book_id = autorzy.identyfikator_autora;

Ponieważ wspomnieliśmy o tabeli książek po lewej stronie, złączenie otrzyma identyfikator jednego wiersza z tabeli książek i wyszuka ten sam numer identyfikacyjny w tabeli autora. Jeśli znajdzie ten sam numer ID, 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 wiersze z obu tabel, w których identyfikator tabeli książek jest równy identyfikatorowi tabeli autora. W ostatnim wierszu widzimy też, że w tabeli autora nie ma numeru ID 4, więc zwrócił przeciwko niemu NULL.

WŁAŚCIWE DOŁĄCZENIE

Podobnie, jeśli chcemy uzyskać jakieś dane, albo z tabeli autora, albo wspólne między książkami i tabelą autora, w oparciu o pewne warunki, tego rodzaju wyników można się spodziewać, używając sprzężenia RIGHT i klauzuli SELECT. Zapytanie SELECT z RIGHT JOIN i warunkiem wyglądałoby tak:

WYBIERZ książki.nazwa_książki, książki.book_id, autorzy.identyfikator_autora,
autorski.autor_fname, autorzy.imie_autora
Z książek
RIGHT JOIN autorów
ON książki.book_id = autorzy.identyfikator_autora;

Tym razem wiemy, że tabela autorów jest po prawej stronie, więc złączenie otrzyma identyfikator jednego wiersza z tabeli autora i poszuka tego samego numeru ID w tabeli książki. Jeśli znajdzie ten sam numer identyfikacyjny, pokaże dane kolumny z tabeli książek. Wykonanie zapytania skutkowałoby tym:

Jak widać, mamy wiersze 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, to z powodu WŁAŚCIWEGO DOŁĄCZENIA.

Tak więc naprawdę działa LEFT JOIN i RIGHT JOIN.

Wniosek

Poznaliśmy i zrozumieliśmy CROSS, LEFT i RIGHT JOIN, a także nauczyliśmy się ich używać, aby uzyskać pożądane wyniki w MySQL. Wypróbowaliśmy również kilka różnych przykładów JOINS, aby lepiej i głębiej zrozumieć koncepcje. Więc odwiedzaj naszą stronę linuxhint.com, aby uzyskać więcej przydatnych treści, takich jak ta.

Gry Jak korzystać z GameConqueror Cheat Engine w systemie Linux
Jak korzystać z GameConqueror Cheat Engine w systemie Linux
Artykuł zawiera przewodnik dotyczący korzystania z silnika oszukującego GameConqueror w systemie Linux. Wielu użytkowników, którzy grają w gry w syste...
Gry Najlepsze emulatory konsoli do gier dla systemu Linux
Najlepsze emulatory konsoli do gier dla systemu Linux
W tym artykule wymienimy popularne oprogramowanie do emulacji konsoli do gier dostępne dla systemu Linux. Emulacja to warstwa kompatybilności oprogram...
Gry Najlepsze dystrybucje Linuksa do gier w 2021 r
Najlepsze dystrybucje Linuksa do gier w 2021 r
System operacyjny Linux przeszedł długą drogę od pierwotnego, prostego, serwerowego wyglądu. Ten system operacyjny znacznie się poprawił w ostatnich l...