logo

SQL JOIN veidi

SQL JOIN

SQL savienojumu izmanto, lai iegūtu vai apvienotu datus (rindas vai kolonnas) no divām vai vairākām tabulām, pamatojoties uz definētajiem nosacījumiem.

1. tabula. Pasūtījums

Pasūtījuma ID Klienta ID PasūtījumaNosaukums Produkta nosaukums
12025 101 Pēteris ABC
12030 105 Roberts XYX
12032 110 Džeimss XYZ
12034 115 Endrjū PQR
12035 120 Metjū AAA

2. tabula. Klients

Klienta ID Klienta vārds Valsts
100 Nekārtīgs Maxico
101 Princis Taivāna
103 Marija Fernandesa Turcija
105 Jasmīns Parīze
110 Fafs zebiekste Indonēzija
120 Romas raķete Krievija

Tagad mums ir divi galdi Pasūtiet un Klients . Tur ir Klienta ID abās tabulās kopīga kolonna. Tātad, ierakstiet SQL vaicājumu, lai definētu vispārīgās attiecības, lai atlasītu atbilstības ierakstus no abām tabulām.

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

Pēc iepriekš minētā izpildes SQL vaicājumus, tas rada šādu izvadi:

Pasūtījuma ID Klienta vārds Valsts Produkta nosaukums
12025 Princis Taivāna ABC
12030 Jasmīns Parīze XYX
12032 Fafs zebiekste Indonēzija XYZ
12035 Romas raķete Krievija AAA

SQL pievienošanās veidi

SQL tiek izmantoti dažādi savienojumu veidi:

  1. Iekšējā pievienošanās / vienkārša pievienošanās
  2. Kreisais ārējais savienojums / kreisais savienojums
  3. Labais ārējais savienojums / labais savienojums
  4. Pilna ārējā pievienošanās
  5. Cross Join
  6. Pievienojies pats

Iekšējā pievienošanās

Iekšējais savienojums tiek izmantots, lai atlasītu visas atbilstošās rindas vai kolonnas abās tabulās vai tik ilgi, kamēr definētais nosacījums ir derīgs SQL.

Sintakse:

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

Mēs varam attēlot iekšējo savienojumu, izmantojot Venna diagrammu, šādi:

SQL JOIN veidi

1. tabula. Studenti

Studenta_ID Studenta vārds Priekšmets Skolotāja ID
101 Aleksandra Datorzinātne T201
102 Čārlzs Ekonomika T202
103 Toms Krūzs Datorzinātne T201
104 Ārons Finčs Elektronika T203
105 Sēklas Bajoff Web dizains T204
106 Kristofers Angļu literatūra T205
107 Džinss Modes dizaineris T206

2. tabula. Skolotāji

Skolotāja ID Skolotāja Vārds SkolotājaE-pasts
T201 Deivisa kungs [aizsargāts ar e-pastu]
T202 Jonas kundze [aizsargāts ar e-pastu]
T201 Deivisa kungs [aizsargāts ar e-pastu]
T204 Lopesas kundze [aizsargāts ar e-pastu]
T205 Vīlijas kundze [aizsargāts ar e-pastu]
T206 Bīna kungs [aizsargāts ar e-pastu]

Mums ir divas tabulas: Studenti un Skolotāji Tabulas. Rakstīsim SQL vaicājumus, lai pievienotos tabulai, izmantojot IEKŠĒJĀ PIEVIENOŠANĀS sekojoši:

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

Pēc vaicājuma izpildes tiek izveidota tālāk redzamā tabula.

SQL JOIN veidi

Dabiska pievienošanās

Tas ir iekšējā tipa veids, kas savieno divas vai vairākas tabulas, pamatojoties uz vienu un to pašu kolonnas nosaukumu, un abās tabulās ir viens un tas pats datu tips.

Sintakse:

 Select * from tablename1 Natural JOIN tablename_2; 

Mums ir divas tabulas: Studenti un Skolotāji Tabulas. Rakstīsim SQL vaicājumus, lai pievienotos tabulai, izmantojot Dabiski JOIN sekojoši:

 Select * from Students Natural JOIN Teachers; 

Pēc iepriekš minētā vaicājuma izpildes tiek izveidota šāda tabula.

SQL JOIN veidi

PA kreisi PIEVIENOTIES

The PA kreisi PIEVIENOTIES tiek izmantots, lai izgūtu visus ierakstus no kreisās tabulas (tabula1) un atbilstošās rindas vai kolonnas no labās tabulas (tabula2). Ja abās tabulās nav nevienas atbilstošas ​​rindas vai kolonnas, tā atgriež NULL.

Sintakse:

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

Mēs varam arī attēlot kreiso savienojumu, izmantojot Venn diagrammu, šādi:

SQL JOIN veidi

Piezīme. Dažās datubāzēs LEFT JOIN sauc arī par LEFT OUTTER JOIN.

1. tabula: Produkta_detaļas

Produkta ID Produkta nosaukums Summa
Pro101 Klēpjdators 56 000
Pro102 Mobilais 38 000
Pro103 Austiņas 5000
Pro104 Televīzija 25 000
Pro105 iPad 60 000

2. tabula: Klienta_informācija

visas filmas neiespējamā misija
Klienta vārds Klienta adrese Klientu vecums Produkta ID
Mārtiņš Guptils Sanfrancisko, ASV 26 Pro101
Džeimss Austrālija 29 Pro103
Ambati Viljamsons Jaunzēlande 27 Pro102
Jofra Arčers Dienvidāfrika 24 Pro105
Keita Vīlija Austrālija divdesmit Pro103

Mums ir divas tabulas: Produkta_detaļas un Klienta_detaļas Tabulas. Rakstīsim SQL vaicājumus, lai pievienotos tabulai, izmantojot PA kreisi PIEVIENOTIES sekojoši:

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

Pēc vaicājuma izpildes tiek izveidota šāda tabula.

SQL JOIN veidi

The PAREIZI PIEVIENOJIES tiek izmantots, lai izgūtu visus ierakstus no labās tabulas (tabula2) un atbilstošās rindas vai kolonnas no kreisās tabulas (tabula1). Ja abās tabulās nav nevienas atbilstošas ​​rindas vai kolonnas, tā atgriež NULL.

Sintakse:

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

Mēs varam arī attēlot pareizo savienojumu, izmantojot Venna diagrammu, šādi:

SQL JOIN veidi

Piezīme. Dažās datubāzēs RIGHT JOIN sauc arī par RIGHT OUTTER JOIN.

1. tabula: Produkta_detaļas

ID Produkta nosaukums Summa
Pro101 Klēpjdators 56 000
Pro102 Mobilais 38 000
Pro103 Austiņas 5000
Pro104 Televīzija 25 000
Pro105 iPad 60 000

2. tabula: Klienta_informācija

Klienta vārds Klienta adrese Klientu vecums Produkta ID
Mārtiņš Guptils Sanfrancisko, ASV 26 Pro101
Džeimss Austrālija 29 Pro103
Ambati Viljamsons Jaunzēlande 27 Pro102
Jofra Arčers Dienvidāfrika 24 Pro105
Omen Anglija 29 Pro107
Morgans Anglija divdesmit Pro108

Mums ir divas tabulas: Produkta_detaļas un Klienta_detaļas Tabulas. Rakstīsim SQL vaicājumus, lai pievienotos tabulai, izmantojot PAREIZI PIEVIENOJIES sekojoši:

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

Pēc vaicājuma izpildes tiek izveidota tālāk redzamā tabula.

SQL JOIN veidi

FULL JOIN vai FULL Outer JOIN:

Tas ir abu kombinācijas rezultātu kopums PA kreisi PIEVIENOTIES un PAREIZI PIEVIENOJIES . Savienotās tabulas atgriež visus ierakstus no abām tabulām, un, ja tabulā nav atrasta neviena atbilstība, tā ievieto NULL. To sauc arī par a PILNA ĀRĒJĀ PIEVIENOJUMI .

Sintakse:

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

vai, PILNA ĀRĒJĀ PIEVIENOJUMI

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

Mēs varam arī attēlot pilnu ārējo savienojumu, izmantojot Venn diagrammu, šādi:

SQL JOIN veidi

1. tabula: Produkta_detaļas

ID Produkta nosaukums Summa
Pro101 Klēpjdators 56 000
Pro102 Mobilais 38 000
Pro103 Austiņas 5000
Pro104 Televīzija 25 000
Pro105 iPad 60 000

2. tabula: Klienta_informācija

Klienta vārds Klienta adrese Klientu vecums Produkta ID
Mārtiņš Guptils Sanfrancisko, ASV 26 Pro101
Džeimss Austrālija 29 Pro103
Ambati Viljamsons Jaunzēlande 27 Pro102
Jofra Arčers Dienvidāfrika 24 Pro105
Omen Anglija 29 Pro107
Morgans Anglija divdesmit Pro108

Mums ir divas tabulas: Produkta_detaļas un Klienta_detaļas Tabulas. Rakstīsim SQL vaicājumus, lai pievienotos tabulai, izmantojot PILNĪGS PIEVIENOJIES šādi:

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

Pēc vaicājuma izpildes tiek izveidota tālāk redzamā tabula.

SQL JOIN veidi

Piezīme: MySQL neatbalsta FULL JOIN koncepcijas, tāpēc mēs varam izmantot UNION ALL klauzulu, lai apvienotu abas tabulas.

Šeit ir sintakse SAVIENĪBA VISU Tabulu apvienošanas klauzula.

 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 

SQL JOIN veidi

KRUSTS PIEVIENOTIES

Tas ir pazīstams arī kā KARTĒZIJAS PIEVIENOTIES , kas atgriež divu vai vairāku savienotu tabulu Dekarta reizinājumu. The KRUSTS PIEVIENOTIES izveido tabulu, kas apvieno katru rindu no pirmās tabulas ar katru otro tabulas rindu. Sadaļā CROSS JOIN nav jāiekļauj neviens nosacījums.

Sintakse:

np punkts
 Select * from table_1 cross join table_2; 

vai,

 Select column1, column2, column3 FROM table_1, table_2; 

1. tabula: Produkta_detaļas

ID Produkta nosaukums Summa
Pro101 Klēpjdators 56 000
Pro102 Mobilais 38 000
Pro103 Austiņas 5000
Pro104 Televīzija 25 000
Pro105 iPad 60 000

2. tabula: Klienta_informācija

Klienta vārds Klienta adrese Klientu vecums Produkta ID
Mārtiņš Guptils Sanfrancisko, ASV 26 Pro101
Džeimss Austrālija 29 Pro103
Ambati Viljamsons Jaunzēlande 27 Pro102
Jofra Arčers Dienvidāfrika 24 Pro105
Omen Anglija 29 Pro107
Morgans Anglija divdesmit Pro108

Mums ir divas tabulas: Produkta_detaļas un Klienta_detaļas Tabulas. Rakstīsim SQL vaicājumus, lai pievienotos tabulai, izmantojot PILNĪGS PIEVIENOJIES šādi:

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

Pēc vaicājuma izpildes tiek izveidota tālāk redzamā tabula.

SQL JOIN veidi

PAŠPIEVIENOJIES

Tā ir SELF JOIN, ko izmanto, lai izveidotu tabulu, savienojot sevi, jo bija divas tabulas. Tas nodrošina pagaidu nosaukšanu vismaz vienai tabulai SQL priekšrakstā.

Sintakse:

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

1. tabula un Tbl2 ir divi dažādi tabulu aizstājvārdi vienai tabulai.

1. tabula: Produkta_detaļas

ID Produkta nosaukums Summa
Pro101 Klēpjdators 56 000
Pro102 Mobilais 38 000
Pro103 Austiņas 5000
Pro104 Televīzija 25 000
Pro105 iPad 60 000

Rakstīsim SQL vaicājumus, lai pievienotos tabulai, izmantojot PAŠPIEVIENOJIES sekojoši:

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