logo

Vrste SQL JOIN

SQL JOIN

SQL Join se uporablja za pridobivanje ali združevanje podatkov (vrstic ali stolpcev) iz dveh ali več tabel na podlagi definiranih pogojev.

Tabela 1: Vrstni red

Številka naročila Identifikacijska številka stranke Ime naročila Ime izdelka
12025 101 Peter ABC
12030 105 Robert XYX
12032 110 James XYZ
12034 115 Andrej PQR
12035 120 Matej AAA

Tabela 2: Stranka

Identifikacijska številka stranke Ime stranke Država
100 Neurejeno Maxico
101 princ Tajvan
103 Maria Fernandez puran
105 Jasmine Pariz
110 Faf Weasel Indonezija
120 Rimska raketa Rusija

Zdaj imamo dve mizi naročilo in Stranka . Obstaja a Identifikacijska številka stranke skupen stolpec v obeh tabelah. Torej, napišite poizvedbo SQL, da definirate splošno razmerje za izbiro zapisov ujemanj iz obeh tabel.

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

Po izvedbi zgoraj navedenega SQL poizvedbe, proizvede naslednje rezultate:

Številka naročila Ime stranke Država Ime izdelka
12025 princ Tajvan ABC
12030 Jasmine Pariz XYX
12032 Faf Weasel Indonezija XYZ
12035 Rimska raketa Rusija AAA

Vrste združevanja SQL

V SQL se uporabljajo različne vrste združevanj:

  1. Notranji spoj / preprost spoj
  2. Levi zunanji spoj / levi spoj
  3. Desni zunanji spoj / desni spoj
  4. Popoln zunanji spoj
  5. Cross Join
  6. Samopridruži se

Notranja pridružitev

Notranje združevanje se uporablja za izbiro vseh ujemajočih se vrstic ali stolpcev v obeh tabelah ali dokler je definiran pogoj veljaven v SQL.

Sintaksa:

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

Notranji spoj lahko predstavimo skozi Vennov diagram, kot sledi:

Vrste SQL JOIN

Tabela 1: Študenti

Študent_ID Študentsko ime Predmet ID učitelja
101 Aleksandra Računalništvo T201
102 Charles Ekonomija T202
103 Tom Cruise Računalništvo T201
104 Aaron Finch elektronika T203
105 Seme Bajoff Spletno oblikovanje T204
106 Christopher Angleška literatura T205
107 Denim Modni oblikovalec T206

Tabela 2: Učitelji

ID učitelja Ime učitelja E-pošta učitelja
T201 G. Davis [e-pošta zaščitena]
T202 Gospa Jonas [e-pošta zaščitena]
T201 G. Davis [e-pošta zaščitena]
T204 Gospa Lopez [e-pošta zaščitena]
T205 Gospa Wiley [e-pošta zaščitena]
T206 gospod Bean [e-pošta zaščitena]

Imamo dve tabeli: Študenti in Učitelji Mize. Napišimo poizvedbe SQL za pridružitev tabeli z uporabo NOTRANJI SPOJ kot sledi:

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

Po izvedbi poizvedbe ustvari spodnjo tabelo.

Vrste SQL JOIN

Naravna pridružitev

Je vrsta notranjega tipa, ki združuje dve ali več tabel na podlagi istega imena stolpca in ima isti podatkovni tip, prisoten v obeh tabelah.

Sintaksa:

 Select * from tablename1 Natural JOIN tablename_2; 

Imamo dve tabeli: Študenti in Učitelji Mize. Napišimo poizvedbe SQL za pridružitev tabeli z uporabo Naravni JOIN kot sledi:

 Select * from Students Natural JOIN Teachers; 

Po izvedbi zgornje poizvedbe izdela naslednjo tabelo.

Vrste SQL JOIN

LEVO PRIDRUŽI SE

The LEVO PRIDRUŽI SE se uporablja za pridobivanje vseh zapisov iz leve tabele (tabela1) in ustreznih vrstic ali stolpcev iz desne tabele (tabela2). Če obe tabeli ne vsebujeta ujemajočih se vrstic ali stolpcev, vrne NULL.

Sintaksa:

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

Levi spoj lahko predstavimo tudi z Vennovim diagramom, kot sledi:

Vrste SQL JOIN

Opomba: V nekaterih bazah podatkov je LEFT JOIN znan tudi kot LEFT OUTER JOIN.

Tabela 1: Product_Details

ProductID Ime izdelka Znesek
Pro101 Prenosni računalnik 56000
Pro102 Mobilni 38000
Pro103 Slušalke 5000
Pro104 televizija 25000
Pro105 iPad 60000

Tabela 2: Customer_Details

polna oblika
Ime stranke Naslov stranke CustomerAge ProductID
Martin Guptill San Francisco, ZDA 26 Pro101
James Avstralija 29 Pro103
Ambati Williamson Nova Zelandija 27 Pro102
Jofra Archer Južna Afrika 24 Pro105
Kate Wiley Avstralija dvajset Pro103

Imamo dve tabeli: Podrobnosti produkta in Customer_Details Mize. Napišimo poizvedbe SQL za pridružitev tabeli z uporabo LEVO PRIDRUŽI SE kot sledi:

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

Po izvedbi poizvedbe izdela naslednjo tabelo.

Vrste SQL JOIN

The PRAV PRIDRUŽI SE se uporablja za pridobivanje vseh zapisov iz desne tabele (tabela2) in ustreznih vrstic ali stolpcev iz leve tabele (tabela1). Če obe tabeli ne vsebujeta ujemajočih se vrstic ali stolpcev, vrne NULL.

Sintaksa:

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

Desni spoj lahko predstavimo tudi z Vennovim diagramom, kot sledi:

Vrste SQL JOIN

Opomba: V nekaterih zbirkah podatkov je RIGHT JOIN znan tudi kot RIGHT OUTER JOIN.

Tabela 1: Product_Details

ID Ime izdelka Znesek
Pro101 Prenosni računalnik 56000
Pro102 Mobilni 38000
Pro103 Slušalke 5000
Pro104 televizija 25000
Pro105 iPad 60000

Tabela 2: Customer_Details

Ime stranke Naslov stranke CustomerAge ProductID
Martin Guptill San Francisco, ZDA 26 Pro101
James Avstralija 29 Pro103
Ambati Williamson Nova Zelandija 27 Pro102
Jofra Archer Južna Afrika 24 Pro105
Omen Anglija 29 Pro107
Morgan Anglija dvajset Pro108

Imamo dve tabeli: Podrobnosti produkta in Customer_Details Mize. Napišimo poizvedbe SQL za pridružitev tabeli z uporabo PRAV PRIDRUŽI SE kot sledi:

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

Po izvedbi poizvedbe ustvari spodnjo tabelo.

Vrste SQL JOIN

FULL JOIN ali FULL Outer JOIN:

Je kombinacija rezultatov obeh LEVO PRIDRUŽI SE in PRAV PRIDRUŽI SE . Združene tabele vrnejo vse zapise iz obeh tabel in če v tabeli ni najdenih ujemanj, postavi NULL. Imenuje se tudi a POLNI ZUNANJI SPOJ .

Sintaksa:

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

ali pa POLNI ZUNANJI SPOJ

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

Celotno zunanjo povezavo lahko predstavimo tudi z Vennovim diagramom, kot sledi:

Vrste SQL JOIN

Tabela 1: Product_Details

ID Ime izdelka Znesek
Pro101 Prenosni računalnik 56000
Pro102 Mobilni 38000
Pro103 Slušalke 5000
Pro104 televizija 25000
Pro105 iPad 60000

Tabela 2: Customer_Details

inicializirati seznam python
Ime stranke Naslov stranke CustomerAge ProductID
Martin Guptill San Francisco, ZDA 26 Pro101
James Avstralija 29 Pro103
Ambati Williamson Nova Zelandija 27 Pro102
Jofra Archer Južna Afrika 24 Pro105
Omen Anglija 29 Pro107
Morgan Anglija dvajset Pro108

Imamo dve tabeli: Podrobnosti produkta in Customer_Details Mize. Napišimo poizvedbe SQL za pridružitev tabeli z uporabo POLN PRIDRUŽI SE na naslednji način:

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

Po izvedbi poizvedbe ustvari spodnjo tabelo.

Vrste SQL JOIN

Opomba: MySQL ne podpira konceptov FULL JOIN, zato lahko uporabimo klavzulo UNION ALL za združevanje obeh tabel.

Tukaj je sintaksa za UNIJA VSE Klavzula za združevanje 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 

Vrste SQL JOIN

KRIŽNI SPOJ

Znan je tudi kot KARTEZIJSKI SPOJ , ki vrne kartezični produkt dveh ali več združenih tabel. The KRIŽNI SPOJ izdela tabelo, ki združi vsako vrstico iz prve tabele z vsako drugo vrstico tabele. V CROSS JOIN ni treba vključiti nobenega pogoja.

Sintaksa:

 Select * from table_1 cross join table_2; 

ali pa

 Select column1, column2, column3 FROM table_1, table_2; 

Tabela 1: Product_Details

ID Ime izdelka Znesek
Pro101 Prenosni računalnik 56000
Pro102 Mobilni 38000
Pro103 Slušalke 5000
Pro104 televizija 25000
Pro105 iPad 60000

Tabela 2: Customer_Details

Ime stranke Naslov stranke CustomerAge ProductID
Martin Guptill San Francisco, ZDA 26 Pro101
James Avstralija 29 Pro103
Ambati Williamson Nova Zelandija 27 Pro102
Jofra Archer Južna Afrika 24 Pro105
Omen Anglija 29 Pro107
Morgan Anglija dvajset Pro108

Imamo dve tabeli: Podrobnosti produkta in Customer_Details Mize. Napišimo poizvedbe SQL za pridružitev tabeli z uporabo POLN PRIDRUŽI SE na naslednji način:

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

Po izvedbi poizvedbe ustvari spodnjo tabelo.

Vrste SQL JOIN

PRIDRUŽITE SE SAMI

To je SELF JOIN, ki se uporablja za ustvarjanje tabele z združevanjem same sebe, saj sta bili tabeli dve. Omogoča začasno poimenovanje vsaj ene tabele v stavku SQL.

Sintaksa:

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

Tabela 1 in Tbl2 sta dva različna vzdevka tabele za isto tabelo.

Tabela 1: Product_Details

ID Ime izdelka Znesek
Pro101 Prenosni računalnik 56000
Pro102 Mobilni 38000
Pro103 Slušalke 5000
Pro104 televizija 25000
Pro105 iPad 60000

Napišimo poizvedbe SQL za pridružitev tabeli z uporabo PRIDRUŽITE SE SAMI kot sledi:

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