DOŁĄCZ DO SQL
Sprzężenie SQL służy do pobierania lub łączenia danych (wierszy lub kolumn) z dwóch lub więcej tabel w oparciu o zdefiniowane warunki.
Tabela 1: Zamówienie
ID zamówienia | Identyfikator klienta | Nazwa zamówienia | Nazwa produktu |
---|---|---|---|
12025 | 101 | Piotr | ABC |
12030 | 105 | Roberta | XYX |
12032 | 110 | James | XYZ |
12034 | 115 | Andrzej | PQR |
12035 | 120 | Mateusz | AAA |
Tabela 2: Klient
Identyfikator klienta | Nazwa klienta | Kraj |
---|---|---|
100 | Niechlujny | Maxico |
101 | Książę | Tajwan |
103 | Marii Fernandez | Indyk |
105 | Jaśmin | Paryż |
110 | Faf Weasel | Indonezja |
120 | Rakieta Rzym | Rosja |
Teraz mamy dwa stoły Zamówienie i Klient . Tam jest Identyfikator klienta kolumna wspólna w obu tabelach. Zatem napisz zapytanie SQL, aby zdefiniować ogólną relację w celu wybrania rekordów dopasowań z obu tabel.
Select Order.OrderID, Customer.CustomerName, Customer.Country, Order.ProductName from Order INNER JOIN Customer ON Order.CustomerID = Customer.CustomerID;
Po wykonaniu powyższych SQL-a zapytania, generuje następujące dane wyjściowe:
ID zamówienia | Nazwa klienta | Kraj | Nazwa produktu |
---|---|---|---|
12025 | Książę | Tajwan | ABC |
12030 | Jaśmin | Paryż | XYX |
12032 | Faf Weasel | Indonezja | XYZ |
12035 | Rakieta Rzym | Rosja | AAA |
Rodzaje złączeń SQL
W SQL stosuje się różne typy złączeń:
- Połączenie wewnętrzne / Połączenie proste
- Lewe połączenie zewnętrzne / Połączenie lewe
- Prawe połączenie zewnętrzne / Prawe połączenie
- Pełne połączenie zewnętrzne
- Dołącz krzyżowo
- Samodzielne dołączenie
Połączenie wewnętrzne
Sprzężenie wewnętrzne służy do wybierania wszystkich pasujących wierszy lub kolumn w obu tabelach lub pod warunkiem, że zdefiniowany warunek jest prawidłowy w języku SQL.
Składnia:
Select column_1, column_2, column_3 FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
Sprzężenie wewnętrzne możemy przedstawić za pomocą diagramu Venna w następujący sposób:
Tabela 1: Studenci
Legitymacja studencka | Imię ucznia | Temat | Identyfikator nauczyciela |
---|---|---|---|
101 | Aleksandra | Informatyka | T201 |
102 | Karol | Ekonomia | T202 |
103 | Toma Cruise'a | Informatyka | T201 |
104 | Aarona Fincha | Elektronika | T203 |
105 | Nasiona Bajoffa | projektowanie stron internetowych | T204 |
106 | Krzysztof | Literatura angielska | T205 |
107 | Dżinsowa | Projektant mody | T206 |
Tabela 2: Nauczyciele
Identyfikator nauczyciela | Imię nauczyciela | NauczycielE-mail |
---|---|---|
T201 | Panie Davisie | [e-mail chroniony] |
T202 | Pani Jonasz | [e-mail chroniony] |
T201 | Panie Davisie | [e-mail chroniony] |
T204 | Pani Lopez | [e-mail chroniony] |
T205 | Pani Wiley | [e-mail chroniony] |
T206 | pan Fasola | [e-mail chroniony] |
Mamy dwie tabele: Studenci i Nauczyciele Stoły. Napiszmy zapytania SQL, aby połączyć się z tabelą za pomocą WEWNĘTRZNE POŁĄCZENIE następująco:
Select Student_ID, StudentName, TeacherName, TeacherEmail FROM Students INNER JOIN Teachers ON Students.TeacherID = Teachers.TeacherID;
Po wykonaniu zapytania wyświetlana jest poniższa tabela.
Naturalne połączenie
Jest to typ typu wewnętrznego, który łączy dwie lub więcej tabel w oparciu o tę samą nazwę kolumny i ma ten sam typ danych w obu tabelach.
Składnia:
Select * from tablename1 Natural JOIN tablename_2;
Mamy dwie tabele: Studenci i Nauczyciele Stoły. Napiszmy zapytania SQL, aby połączyć się z tabelą za pomocą Naturalnie DOŁĄCZ następująco:
Select * from Students Natural JOIN Teachers;
Po wykonaniu powyższego zapytania wyświetlana jest następująca tabela.
LEWO DOŁĄCZ
The LEWO DOŁĄCZ służy do pobrania wszystkich rekordów z lewej tabeli (tabela 1) oraz dopasowanych wierszy lub kolumn z prawej tabeli (tabela 2). Jeśli obie tabele nie zawierają pasujących wierszy lub kolumn, zwraca wartość NULL.
Składnia:
Select column_1, column_2, column(s) FROM table_1 LEFT JOIN table_2 ON table_1.column_name = table_2.column_name;
Łączenie lewe możemy również przedstawić za pomocą diagramu Venna w następujący sposób:
Uwaga: W niektórych bazach danych funkcja LEFT JOIN jest również znana jako LEFT OUTER JOIN.
Tabela 1: Szczegóły_produktu
ID produktu | Nazwa produktu | Kwota |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | mobilny | 38000 |
Pro103 | Słuchawki | 5000 |
Pro104 | Telewizja | 25000 |
Pro105 | iPada | 60000 |
Tabela 2: Dane_klienta
wybierz jako
Nazwa klienta | Adres klienta | Wiek klienta | ID produktu |
---|---|---|---|
Martina Guptilla | San Francisco, Stany Zjednoczone | 26 | Pro101 |
James | Australia | 29 | Pro103 |
Ambati Williamsona | Nowa Zelandia | 27 | Pro102 |
Jofra Archer | Afryka Południowa | 24 | Pro105 |
Kate Wiley | Australia | 20 | Pro103 |
Mamy dwie tabele: Szczegóły Produktu i Szczegóły klienta Stoły. Napiszmy zapytania SQL, aby połączyć się z tabelą za pomocą LEWO DOŁĄCZ następująco:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Po wykonaniu zapytania wyświetlana jest następująca tabela.
PRAWE ŁĄCZENIE lub PRAWE ŁĄCZENIE zewnętrzne:
The PRAWO DOŁĄCZ służy do pobrania wszystkich rekordów z prawej tabeli (tabela 2) oraz dopasowanych wierszy lub kolumn z lewej tabeli (tabela 1). Jeśli obie tabele nie zawierają pasujących wierszy lub kolumn, zwraca wartość NULL.
Składnia:
Select column_1, column_2, column(s) FROM table_1 RIGHT JOIN table_2 ON table_1.column_name = table_2.column_name;
Prawe połączenie możemy również przedstawić za pomocą diagramu Venna w następujący sposób:
Uwaga: W niektórych bazach danych RIGHT JOIN jest również znane jako RIGHT OUTER JOIN.
Tabela 1: Szczegóły_produktu
ID | Nazwa produktu | Kwota |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | mobilny | 38000 |
Pro103 | Słuchawki | 5000 |
Pro104 | Telewizja | 25000 |
Pro105 | iPada | 60000 |
Tabela 2: Dane_klienta
Nazwa klienta | Adres klienta | Wiek klienta | ID produktu |
---|---|---|---|
Martina Guptilla | San Francisco, Stany Zjednoczone | 26 | Pro101 |
James | Australia | 29 | Pro103 |
Ambati Williamsona | Nowa Zelandia | 27 | Pro102 |
Jofra Archer | Afryka Południowa | 24 | Pro105 |
Omen | Anglia | 29 | Pro107 |
Morgana | Anglia | 20 | Pro108 |
Mamy dwie tabele: Szczegóły Produktu i Szczegóły klienta Stoły. Napiszmy zapytania SQL, aby połączyć się z tabelą za pomocą PRAWO DOŁĄCZ następująco:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Po wykonaniu zapytania wyświetlana jest poniższa tabela.
PEŁNE DOŁĄCZENIE lub PEŁNE DOŁĄCZENIE zewnętrzne:
Jest to połączenie zestawu wyników obu LEWO DOŁĄCZ I PRAWO DOŁĄCZ . Połączone tabele zwracają wszystkie rekordy z obu tabel, a jeśli w tabeli nie zostaną znalezione żadne dopasowania, ustawiana jest wartość NULL. Nazywa się to również A PEŁNE POŁĄCZENIE ZEWNĘTRZNE .
Składnia:
Select column_1, column_2, column(s) FROM table_1 FULL JOIN table_2 ON table_1.column_name = table_2.column_name;
Lub, PEŁNE POŁĄCZENIE ZEWNĘTRZNE
Select column_1, column_2, column(s) FROM table_1 FULL OUTER JOIN table_2 ON table_1.column_name = table_2.column_name;
Pełne połączenie zewnętrzne możemy również przedstawić za pomocą diagramu Venna w następujący sposób:
Tabela 1: Szczegóły_produktu
ID | Nazwa produktu | Kwota |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | mobilny | 38000 |
Pro103 | Słuchawki | 5000 |
Pro104 | Telewizja | 25000 |
Pro105 | iPada | 60000 |
Tabela 2: Dane_klienta
Nazwa klienta | Adres klienta | Wiek klienta | ID produktu |
---|---|---|---|
Martina Guptilla | San Francisco, Stany Zjednoczone | 26 | Pro101 |
James | Australia | 29 | Pro103 |
Ambati Williamsona | Nowa Zelandia | 27 | Pro102 |
Jofra Archer | Afryka Południowa | 24 | Pro105 |
Omen | Anglia | 29 | Pro107 |
Morgana | Anglia | 20 | Pro108 |
Mamy dwie tabele: Szczegóły Produktu i Szczegóły klienta Stoły. Napiszmy zapytania SQL, aby połączyć się z tabelą za pomocą PEŁNY DOŁĄCZ w następujący sposób:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details FULL JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Po wykonaniu zapytania wyświetlana jest poniższa tabela.
Uwaga: MySQL nie obsługuje koncepcji FULL JOIN, dlatego możemy użyć klauzuli UNION ALL, aby połączyć obie tabele.
Oto składnia dla UNIA WSZYSTKICH Klauzula łączenia tabel.
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID UNION ALL Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details RIGHT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID
POŁĄCZENIE KRZYŻOWE
Znany jest również jako ŁĄCZENIE KARTEZJAŃSKIE , która zwraca iloczyn kartezjański dwóch lub więcej połączonych tabel. The POŁĄCZENIE KRZYŻOWE tworzy tabelę, która łączy każdy wiersz pierwszej tabeli z każdym drugim wierszem tabeli. Dołączenie żadnego warunku w CROSS JOIN nie jest wymagane.
Składnia:
Select * from table_1 cross join table_2;
Lub,
Select column1, column2, column3 FROM table_1, table_2;
Tabela 1: Szczegóły_produktu
ID | Nazwa produktu | Kwota |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | mobilny | 38000 |
Pro103 | Słuchawki | 5000 |
Pro104 | Telewizja | 25000 |
Pro105 | iPada | 60000 |
Tabela 2: Dane_klienta
Nazwa klienta | Adres klienta | Wiek klienta | ID produktu |
---|---|---|---|
Martina Guptilla | San Francisco, Stany Zjednoczone | 26 | Pro101 |
James | Australia | 29 | Pro103 |
Ambati Williamsona | Nowa Zelandia | 27 | Pro102 |
Jofra Archer | Afryka Południowa | 24 | Pro105 |
Omen | Anglia | 29 | Pro107 |
Morgana | Anglia | 20 | Pro108 |
Mamy dwie tabele: Szczegóły Produktu i Szczegóły klienta Stoły. Napiszmy zapytania SQL, aby połączyć się z tabelą za pomocą PEŁNY DOŁĄCZ w następujący sposób:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details, Customer_Details;
Po wykonaniu zapytania wyświetlana jest poniższa tabela.
atoi c
DOŁĄCZ DO SIEBIE
Jest to funkcja SELF JOIN używana do tworzenia tabeli poprzez połączenie się, ponieważ istnieją dwie tabele. Tworzy tymczasowe nazewnictwo co najmniej jednej tabeli w instrukcji SQL.
Składnia:
Select column1, column2, column(s) FROM table_1 Tbl1, table_2 Tbl2 WHERE condition;
Tabela 1 I Tbl2 to dwa różne aliasy tabeli dla tej samej tabeli.
Tabela 1: Szczegóły_produktu
ID | Nazwa produktu | Kwota |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | mobilny | 38000 |
Pro103 | Słuchawki | 5000 |
Pro104 | Telewizja | 25000 |
Pro105 | iPada | 60000 |
Napiszmy zapytania SQL, aby połączyć się z tabelą za pomocą DOŁĄCZ DO SIEBIE następująco:
Select TB.ID, TB.ProductName FROM Product_Details TB, Product_Details TB2 WHERE TB.AMOUNT <tb2.amount; < pre> <p>After executing the query, it produces the below table. </p> <img src="//techcodeview.com/img/sql-tutorial/44/types-sql-join-12.webp" alt="Types of SQL JOIN"> <hr></tb2.amount;>