logo

Typy SQL JOIN

SQL JOIN

SQL Join sa používa na načítanie alebo kombinovanie údajov (riadkov alebo stĺpcov) z dvoch alebo viacerých tabuliek na základe definovaných podmienok.

Tabuľka 1: Objednávka

Číslo objednávky CustomerID OrderName Meno Produktu
12025 101 Peter ABC
12030 105 Robert XYX
12032 110 James XYZ
12034 115 Andrew PQR
12035 120 Mathew AAA

Tabuľka 2: Zákazník

CustomerID Meno zákazníka Krajina
100 chaotický Maxico
101 Princ Taiwan
103 Mária Fernandezová Turecko
105 Jasmine Paríž
110 Faf Weasel Indonézia
120 Rímska raketa Rusko

Teraz máme dva stoly objednať a Zákazník . Existuje a CustomerID stĺpec spoločný v oboch tabuľkách. Takže napíšte dotaz SQL na definovanie všeobecného vzťahu na výber záznamov zhody z oboch tabuliek.

 Select Order.OrderID, Customer.CustomerName, Customer.Country, Order.ProductName from Order INNER JOIN Customer ON Order.CustomerID = Customer.CustomerID; 

Po vykonaní vyššie uvedeného SQL dotazov, vytvára nasledujúci výstup:

Číslo objednávky Meno zákazníka Krajina Meno Produktu
12025 Princ Taiwan ABC
12030 Jasmine Paríž XYX
12032 Faf Weasel Indonézia XYZ
12035 Rímska raketa Rusko AAA

Typy spojenia SQL

V SQL sa používajú rôzne typy spojení:

  1. Vnútorné spojenie / jednoduché spojenie
  2. Ľavé vonkajšie spojenie / Ľavé spojenie
  3. Pravé vonkajšie spojenie / pravé spojenie
  4. Úplné vonkajšie spojenie
  5. Cross Join
  6. Vlastné pripojenie

Vnútorné spojenie

Vnútorné spojenie sa používa na výber všetkých zodpovedajúcich riadkov alebo stĺpcov v oboch tabuľkách, alebo pokiaľ je definovaná podmienka platná v SQL.

Syntax:

 Select column_1, column_2, column_3 FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column; 

Vnútorné spojenie môžeme reprezentovať cez Vennov diagram takto:

Typy SQL JOIN

Tabuľka 1: Študenti

Študentská karta Meno študenta Predmet Učiteľ ID
101 Alexandra Počítačová veda T201
102 Charles Ekonomika T202
103 Tom Cruise Počítačová veda T201
104 Aaron Finch Elektronika T203
105 Seed Bajoff Tvorba webu T204
106 Christopher Anglická literatúra T205
107 Denim Módny návrhár T206

Tabuľka 2: Učitelia

Učiteľ ID Meno učiteľa E-mail učiteľa
T201 pán Davis [e-mail chránený]
T202 Pani Jonasová [e-mail chránený]
T201 pán Davis [e-mail chránený]
T204 Pani Lopezová [e-mail chránený]
T205 Pani Wileyová [e-mail chránený]
T206 MR Bean [e-mail chránený]

Máme dve tabuľky: Študenti a Učitelia Tabuľky. Napíšme SQL dotazy na pripojenie k tabuľke pomocou VNÚTORNÉ SPOJENIE nasledovne:

 Select Student_ID, StudentName, TeacherName, TeacherEmail FROM Students INNER JOIN Teachers ON Students.TeacherID = Teachers.TeacherID; 

Po vykonaní dotazu vytvorí tabuľku nižšie.

Typy SQL JOIN

Prirodzené spojenie

Je to typ vnútorného typu, ktorý spája dve alebo viac tabuliek na základe rovnakého názvu stĺpca a má rovnaký typ údajov prítomný v oboch tabuľkách.

Syntax:

 Select * from tablename1 Natural JOIN tablename_2; 

Máme dve tabuľky: Študenti a Učitelia Tabuľky. Napíšme SQL dotazy na pripojenie k tabuľke pomocou Prirodzené JOIN nasledovne:

 Select * from Students Natural JOIN Teachers; 

Po vykonaní vyššie uvedeného dotazu vytvorí nasledujúcu tabuľku.

Typy SQL JOIN

ĽAVÉ PRIPOJENIE

The ĽAVÉ PRIPOJENIE sa používa na získanie všetkých záznamov z ľavej tabuľky (tabuľka1) a zhodných riadkov alebo stĺpcov z pravej tabuľky (tabuľka2). Ak obe tabuľky neobsahujú žiadne zhodné riadky alebo stĺpce, vráti hodnotu NULL.

Syntax:

 Select column_1, column_2, column(s) FROM table_1 LEFT JOIN table_2 ON table_1.column_name = table_2.column_name; 

Ľavé spojenie môžeme tiež reprezentovať cez Vennov diagram takto:

Typy SQL JOIN

Poznámka: V niektorých databázach je LEFT JOIN známy aj ako LEFT OUTER JOIN.

Tabuľka 1: Podrobnosti o produkte

Identifikačné číslo produktu Meno Produktu Suma
Pro101 laptop 56 000
Pro102 Mobilné 38 000
Pro103 Slúchadlá 5000
Pro104 Televízia 25 000
Pro105 iPad 60 000

Tabuľka 2: Podrobnosti o zákazníkovi

príklad zoznamu v jave
Meno zákazníka CustomerAddress CustomerAge Identifikačné číslo produktu
Martin Guptill San Francisco, USA 26 Pro101
James Austrália 29 Pro103
Ambati Williamson Nový Zéland 27 Pro102
Jofra Archer južná Afrika 24 Pro105
Kate Wiley Austrália dvadsať Pro103

Máme dve tabuľky: Detaily produktu a Customer_Details Tabuľky. Napíšme SQL dotazy na pripojenie k tabuľke pomocou ĽAVÉ PRIPOJENIE nasledovne:

 Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID; 

Po vykonaní dotazu vytvorí nasledujúcu tabuľku.

Typy SQL JOIN

The SPRÁVNE PRIPOJTE SA sa používa na získanie všetkých záznamov z pravej tabuľky (tabuľka2) a zhodných riadkov alebo stĺpcov z ľavej tabuľky (tabuľka1). Ak obe tabuľky neobsahujú žiadne zhodné riadky alebo stĺpce, vráti hodnotu NULL.

Syntax:

 Select column_1, column_2, column(s) FROM table_1 RIGHT JOIN table_2 ON table_1.column_name = table_2.column_name; 

Pravé spojenie môžeme znázorniť aj prostredníctvom Vennovho diagramu takto:

Typy SQL JOIN

Poznámka: V niektorých databázach je RIGHT JOIN známe aj ako RIGHT OUTER JOIN.

Tabuľka 1: Podrobnosti o produkte

ID Meno Produktu Suma
Pro101 laptop 56 000
Pro102 Mobilné 38 000
Pro103 Slúchadlá 5000
Pro104 Televízia 25 000
Pro105 iPad 60 000

Tabuľka 2: Podrobnosti o zákazníkovi

Meno zákazníka CustomerAddress CustomerAge Identifikačné číslo produktu
Martin Guptill San Francisco, USA 26 Pro101
James Austrália 29 Pro103
Ambati Williamson Nový Zéland 27 Pro102
Jofra Archer južná Afrika 24 Pro105
Omen Anglicko 29 Pro107
Morgan Anglicko dvadsať Pro108

Máme dve tabuľky: Detaily produktu a Customer_Details Tabuľky. Napíšme SQL dotazy na pripojenie k tabuľke pomocou SPRÁVNE PRIPOJTE SA nasledovne:

 Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID; 

Po vykonaní dotazu vytvorí tabuľku nižšie.

Typy SQL JOIN

FULL JOIN alebo FULL Outer JOIN:

Ide o kombináciu výsledkov oboch ĽAVÉ PRIPOJENIE a SPRÁVNE PRIPOJTE SA . Spojené tabuľky vrátia všetky záznamy z oboch tabuliek a ak sa v tabuľke nenájdu žiadne zhody, umiestni NULL. Nazýva sa aj a ÚPLNÉ VONKAJŠIE SPOJENIE .

Syntax:

obsahuje python
 Select column_1, column_2, column(s) FROM table_1 FULL JOIN table_2 ON table_1.column_name = table_2.column_name; 

alebo ÚPLNÉ VONKAJŠIE SPOJENIE

 Select column_1, column_2, column(s) FROM table_1 FULL OUTER JOIN table_2 ON table_1.column_name = table_2.column_name; 

Úplné vonkajšie spojenie môžeme tiež znázorniť cez Vennov diagram takto:

Typy SQL JOIN

Tabuľka 1: Podrobnosti o produkte

ID Meno Produktu Suma
Pro101 laptop 56 000
Pro102 Mobilné 38 000
Pro103 Slúchadlá 5000
Pro104 Televízia 25 000
Pro105 iPad 60 000

Tabuľka 2: Podrobnosti o zákazníkovi

Meno zákazníka CustomerAddress CustomerAge Identifikačné číslo produktu
Martin Guptill San Francisco, USA 26 Pro101
James Austrália 29 Pro103
Ambati Williamson Nový Zéland 27 Pro102
Jofra Archer južná Afrika 24 Pro105
Omen Anglicko 29 Pro107
Morgan Anglicko dvadsať Pro108

Máme dve tabuľky: Detaily produktu a Customer_Details Tabuľky. Napíšme SQL dotazy na pripojenie k tabuľke pomocou PLNÝ PRIPOJTE SA nasledovne:

 Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details FULL JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID; 

Po vykonaní dotazu vytvorí tabuľku nižšie.

Typy SQL JOIN

Poznámka: MySQL nepodporuje koncepty FULL JOIN, takže na kombináciu oboch tabuliek môžeme použiť klauzulu UNION ALL.

Tu je syntax pre UNION VŠETKO Doložka na spojenie tabuliek.

 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 

Typy SQL JOIN

KRÍŽOVÉ PRIPOJENIE

Je tiež známy ako KARTÉZSKÉ PRIPOJENIE , ktorý vráti karteziánsky súčin dvoch alebo viacerých spojených tabuliek. The KRÍŽOVÉ PRIPOJENIE vytvorí tabuľku, ktorá zlúči každý riadok z prvej tabuľky s každým druhým riadkom tabuľky. Do CROSS JOIN nie je potrebné zahrnúť žiadnu podmienku.

Syntax:

 Select * from table_1 cross join table_2; 

alebo

 Select column1, column2, column3 FROM table_1, table_2; 

Tabuľka 1: Podrobnosti o produkte

ID Meno Produktu Suma
Pro101 laptop 56 000
Pro102 Mobilné 38 000
Pro103 Slúchadlá 5000
Pro104 Televízia 25 000
Pro105 iPad 60 000

Tabuľka 2: Podrobnosti o zákazníkovi

Meno zákazníka CustomerAddress CustomerAge Identifikačné číslo produktu
Martin Guptill San Francisco, USA 26 Pro101
James Austrália 29 Pro103
Ambati Williamson Nový Zéland 27 Pro102
Jofra Archer južná Afrika 24 Pro105
Omen Anglicko 29 Pro107
Morgan Anglicko dvadsať Pro108

Máme dve tabuľky: Detaily produktu a Customer_Details Tabuľky. Napíšme SQL dotazy na pripojenie k tabuľke pomocou PLNÝ PRIPOJTE SA nasledovne:

 Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details, Customer_Details; 

Po vykonaní dotazu vytvorí tabuľku nižšie.

Typy SQL JOIN

SEBA PRIPOJTE SA

Je to SELF JOIN, ktorý sa používa na vytvorenie tabuľky spojením, pretože existovali dve tabuľky. Umožňuje dočasné pomenovanie aspoň jednej tabuľky v príkaze SQL.

Syntax:

 Select column1, column2, column(s) FROM table_1 Tbl1, table_2 Tbl2 WHERE condition; 

stôl 1 a Tbl2 sú dva rôzne aliasy tabuľky pre tú istú tabuľku.

Tabuľka 1: Podrobnosti o produkte

ID Meno Produktu Suma
Pro101 laptop 56 000
Pro102 Mobilné 38 000
Pro103 Slúchadlá 5000
Pro104 Televízia 25 000
Pro105 iPad 60 000

Napíšme SQL dotazy na pripojenie k tabuľke pomocou SEBA PRIPOJTE SA nasledovne:

 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;>