Wprowadzenie do połączeń w MySQL

Połączenia MySQL odgrywają ważną rolę, gdy musimy połączyć dwie tabele razem w oparciu o jedną lub więcej wspólnych wartości dzielonych przez dwie tabele.

Przykład : Rozważmy, że mamy dwie tabele, jedna to tabela pracowników składająca się z ID_ pracownika, phn_no, wynagrodzenia i działu. Kolejna tabela to tablica adresów, która składa się z ID_pracownika i adresu. Jeśli musimy znaleźć identyfikator pracownika, dział i adres, musimy dołączyć do obu tabel, które mają wspólne pole jako identyfikator pracownika.

Zapytanie :

SELECT e1.employee_id, e1.department, a1.address
FROM employee e1
INNER JOIN address a1
ON e1.employee_id = a1.employee_id;

Top 6 rodzajów połączeń w MySQL

Istnieją różne typy złączeń w MySQL. Poniższe dołączenia pojawiają się w codziennym użyciu i są najbardziej przydatne podczas przeprowadzania wielu zapytań w rzeczywistych przypadkach.

  1. Wewnętrzne dołączenie
  2. Lewy dołącz
  3. Prawe dołączenie
  4. Pełne połączenie zewnętrzne
  5. Dołącz do siebie
  6. Połącz krzyżowo

1. Przyłączenie wewnętrzne

Sprzężenie wewnętrzne zwraca wartość, która jest zgodna w obu tabelach.

Ta część pochodzi z wyjścia, jak pokazano na powyższym obrazku.

Przykład 1:

Emp_id Departament Wynagrodzenie
1001 TO 1000
1002 CSR 800
1003 TO 2000

To jest tabela pracowników.

Emp_id Adres
1002 Delhi
1003 Bangalore
1005 Bbsr

Oto tabela adresowa tych pracowników. Klucz podstawowy pracownika tabeli nadrzędnej emp_id jest używany jako klucz obcy w tabeli adresowej, która jest tabelą podrzędną. Znajdziemy emp_id, dział i adres jednego pracownika korzystającego z połączenia wewnętrznego. Ponieważ wewnętrzne stany łączenia Pobiera rekordy, które są obecne / wspólne w obu tabelach.

Pytanie:

SELECT emp.emp_id, emp.department, ads.address
FROM employee AS emp
INNER JOIN address AS ads
ON emp.emp_id = ads.emp_id;

Dajemy alias do nazwy tabeli, aby uniknąć więcej czasu. W powyższym zapytaniu używamy aliasu „emp” dla tabeli pracowników i „reklam” dla tabeli adresów.

Wynik:

Emp_id Departament Adres
1002 CSR Delhi
1003 TO Bangalore

Ponieważ w powyższym przykładzie emp_id 1002 i 1003 były wspólne dla obu tabel, polecenie łączenia wewnętrznego pobiera dane wyjściowe tylko dla tych pracowników.

Przykład 2:

Tutaj mamy 2 tabele, table1 i table2. Obie tabele składają się z jednego atrybutu, odpowiednio jako kolumny A i kolumny B.

Tabela 1

Kolumna A
1
1
2)
3)
4

Tabela 2

Kolumna B
1
2)
2)
3)
3)
5

Pytanie:

If we apply inner join here,
SELECT * FROM Table1
INNER JOIN table2
ON columnA = columnB;

Wynik:

Kolumna A Kolumna B
1 1
1 Zero
2) 2)
Zero 2)
3) 3)
Zero 3)

2. Left Join

To sprzężenie zwraca wszystkie rekordy z lewej tabeli i dopasowane rekordy z prawej tabeli.

Jak pokazuje powyższy diagram, składa się ze wszystkich rekordów z tabeli A i wspólnych rekordów z A i B.

Przykład 1:

Identyfikator klienta Nazwa Miasto
1 Harish Cuttack
2) David Bangalore
3) Mahesh Bhubaneswar
4 Sam Kalkuta

Tabela klientów:

Order_id Ilość Identyfikator klienta
19868 7575.00 4
19976 434654, 00 2)
99680 7457, 00 3)

Tabela zamówień:

Dowiemy się identyfikator_użytkownika, nazwa i identyfikator_kojarzenia skojarzone za pomocą lewy łączyć.

Pytanie:

SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
LEFT JOIN order ord
ON cust.customer_id = ord.customer_id;

Wynik:

Identyfikator klienta NazwaOrder_id
1 Harish zero
2) David 19976
3) Mahesh 99680
4 Sam 19868

Kiedy omawialiśmy to lewe złączenie, pobierało wszystkie identyfikatory klientów z tabeli klientów i wspólne dla obu tabel. Dla identyfikatora klienta „1” będzie on wyświetlany jako „null”, ponieważ identyfikator klienta „1” nie jest obecny w tabeli zamówień.

Przykład 2:

Tutaj mamy 2 tabele, table1 i table2. Obie tabele składają się z jednego atrybutu, odpowiednio jako kolumny A i kolumny B.

Tabela 1

Kolumna A
1
1
2)
2)
3)

Tabela 2

Kolumna B
1
2)
2)
4
4
5
5

Pytanie:

If we apply left join on above 2 tables,
SELECT * FROM table1
LEFT JOIN table2
ON columnA = columnB;

Kolumna A Kolumna B
1 1
1 Zero
2) 2)
2) 2)
3) Zero

3. Right Join

To sprzężenie zwraca wszystkie rekordy z prawej tabeli i pasujące rekordy z lewej tabeli.

Powyższy schemat pokazuje, że pobiera wszystkie rekordy z tabeli B i wspólny, który jest obecny w obu tabelach.

Przykład:

Identyfikator klienta Nazwa Miasto
3) Mahesh Bhubaneswar
4 Sam Kalkuta
5 Baran Bombaj

Tabela klientów:

Order_id Ilość Identyfikator klienta
19868 7575.00 4
19976 434654, 00 2)
99680 7457, 00 3)

Tabela zamówień:

Za pomocą odpowiedniego sprzężenia dowiemy się o identyfikatorze klienta, nazwie i identyfikatorze zamówienia powiązanym z nim.

Pytanie:

SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
RIGHT JOIN order ord
ON cust.customer_id = ord.customer_id;

Wynik:

Identyfikator klienta Nazwa Order_id
2) zero 19976
3) Mahesh 99680
4 Sam 19868

Jak wykonaliśmy tutaj prawe dołączenie, więc zapytanie pobierało wszystkie identyfikatory klientów z tabeli zamówień i wspólnych rekordów, które znajdują się w obu tabelach.

4. Pełny łącznik zewnętrzny

Pełne sprzężenie zewnętrzne zwraca wszystkie rekordy z obu tabel, jeśli wspólne pole jest wspólne.

Przykład:

Identyfikator klienta Nazwa Miasto
3) Mahesh Bhubaneswar
4 Sam Kalkuta
5 Baran Bombaj

Tabela klientów:

Order_id Ilość Identyfikator klienta
19868 7575.00 4
19976 434654, 00 2)
99680 7457, 00 3)

Tabela zamówień:

Za pomocą pełnego sprzężenia zewnętrznego dowiemy się o identyfikatorze klienta, nazwie i identyfikatorze zamówienia powiązanym z nim.

Pytanie:

SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
FULL OUTER JOIN order ord
ON cust.customer_id = ord.customer_id;

Wynik:

Identyfikator klienta Nazwa Order_id
2) zero 19976
3) Mahesh 99680
4 Sam 19868
5 Baran zero

To pełne sprzężenie zewnętrzne pobierało wszystkie identyfikatory klientów z tabeli klientów, a także z tabeli zamówień.

5. Dołącz do siebie

Samozłączenie jest zwykłym złączeniem i tutaj stół łączy się tylko ze sobą.

Emp_id Nazwa Nr telefonu Miasto Kraj
1001 R. Madhvan 9687687698 Bangalore Indie
1002 Gobu Sharma 9856453423 Pune Indie
1003 Debasish Das 8765456787 Bombaj Indie
1004 Amit Rout 4567788635 Pune Indie
1005 Sambit Kar 8789887873 Hyderabad Indie

Oto tabela pracowników składająca się z kilku pól. Dowiemy się pracowników mieszkających w tym samym mieście.

Zapytanie :

SELECT e1.name AS Employee_name1, e2.name AS employee_name2, e1.City
FROM employee e1, employee e2
WHERE e1.name e2.name
AND e1.city = e2.city;

Wyjście :

Nazwa pracownika 1 Nazwa pracownika 2 e1.city
Gobu Sharma Amit Rout Pune
Amit Rout Gobu Sharma Pune

6. Cross Join

To połączenie daje wynik, w którym liczba wierszy w pierwszej tabeli zostaje pomnożona przez wiersze w drugiej tabeli. Ten rodzaj wyniku nazywa się produktem kartezjańskim. Jeśli użyjemy klauzuli WHERE z tym łączeniem, będzie to działać jako łączenie wewnętrzne.

Przykład:

Prod_id Nazwa produktu Prod_unit Identyfikator firmy
1 Mieszanka Chex Szt 12
2) Cheez-it Szt 15
3) Herbatnik szt 16

Tabela produktów :

Identyfikator firmy Nazwa firmy Company_city
15 Foodies Delhi
16 Jack n Jill Cuttack
17 Naturalny Bangalore

Tabela firmowa :

W tych tabelach zastosujemy łączenie krzyżowe.

Zapytanie :

SELECT p.product_name, p.prod_unit, c.company_name
FROM product p
CROSS JOIN company c;

Wyjście :

p.nazwa_produktu p.prod_unit c.nazwa_firmy
Mieszanka Chex Szt Foodies
Cheez-it Szt Foodies
Herbatnik Szt Foodies
Mieszanka Chex Szt Jack n Jill
Cheez-it Szt Jack n Jill
Herbatnik Szt Jack n Jill
Mieszanka Chex Szt Naturalny
Cheez-it Szt Naturalny
Herbatnik Szt Naturalny

Wniosek

Znaczenie tych połączeń jest bardzo ważne podczas pracy w scenariuszach w czasie rzeczywistym, a także w niektórych innych technologiach. W wizualizacjach takich jak Tableau i Power BI złączenia odgrywają istotną rolę. Ustrukturyzowana praktyka tego jest kluczem do osadzenia tych nowych technik i umiejętności.

Polecany artykuł

Jest to przewodnik po łączeniach w MySQL. Tutaj omawiamy 6 najlepszych rodzajów złączeń w MySQL, takich jak Wewnętrzny, Lewy, Prawy, Pełny, Ja, Krzyż i jego przykłady wraz z zapytaniami i danymi wyjściowymi. możesz również przejrzeć nasze sugerowane artykuły, aby dowiedzieć się więcej -

  1. 10 najważniejszych poleceń MySQL
  2. Wprowadzenie do operatorów MySQL
  3. MySQL vs SQLite | Porównanie 14 najlepszych
  4. Top 23 funkcji MySQL String
  5. Wyjaśnij Wstaw polecenie w MySQL z przykładami
  6. 6 najważniejszych różnic między kluczem podstawowym a kluczem obcym