logo

SQL JOIN tipai

SQL JOIN

SQL prisijungimas naudojamas norint gauti arba sujungti duomenis (eilutes arba stulpelius) iš dviejų ar daugiau lentelių pagal apibrėžtas sąlygas.

1 lentelė: Užsakymas

Užsakymo ID Kliento ID Užsakymo pavadinimas Produkto pavadinimas
12025 m 101 Petras ABC
12030 m 105 Robertas XYX
12032 110 Džeimsas XYZ
12034 115 Andriejus PQR
12035 120 Mathew AAA

2 lentelė: Klientas

Kliento ID Kliento vardas Šalis
100 Netvarkinga Maxico
101 Princas Taivanas
103 Marija Fernandez Turkija
105 Jazminas Paryžius
110 Fafas Vizlis Indonezija
120 Romos raketa Rusija

Dabar turime du stalus Įsakymas ir Klientas . Čia yra Kliento ID stulpelis bendras abiejose lentelėse. Taigi, parašykite SQL užklausą, kad apibrėžtumėte bendrąjį ryšį, kad pasirinktumėte atitikmenų įrašus iš abiejų lentelių.

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

Atlikę aukščiau nurodytus veiksmus SQL užklausų, ji sukuria tokią išvestį:

Užsakymo ID Kliento vardas Šalis Produkto pavadinimas
12025 m Princas Taivanas ABC
12030 m Jazminas Paryžius XYX
12032 Fafas Vizlis Indonezija XYZ
12035 Romos raketa Rusija AAA

SQL prisijungimo tipai

SQL naudojami įvairūs sujungimų tipai:

  1. Vidinis prisijungimas / paprastas prisijungimas
  2. Kairysis išorinis sujungimas / kairysis sujungimas
  3. Dešinysis išorinis sujungimas / dešinysis sujungimas
  4. Pilnas išorinis prisijungimas
  5. Prisijunkite prie kryžiaus
  6. Prisijunkite patys

Vidinis prisijungimas

Vidinis sujungimas naudojamas norint pasirinkti visas atitinkančias eilutes ar stulpelius abiejose lentelėse arba tol, kol apibrėžta sąlyga galioja SQL.

Sintaksė:

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

Vidinį sujungimą galime pavaizduoti per Venno diagramą taip:

SQL JOIN tipai

1 lentelė: Mokiniai

Studento pažymėjimas Studento vardas Tema Mokytojo ID
101 Aleksandra Informatika T201
102 Charlesas Ekonomika T202
103 Tomas Kruzas Informatika T201
104 Aronas Finčas Elektronika T203
105 Sėklos Bajoffas Web dizainas T204
106 Kristupas Anglų literatūra T205
107 Džinsinis Mados dizaineris T206

2 lentelė: Mokytojai

Mokytojo ID Mokytojo vardas Mokytojo El
T201 ponas Deivis [apsaugotas el. paštas]
T202 Ponia Jonas [apsaugotas el. paštas]
T201 ponas Deivis [apsaugotas el. paštas]
T204 Ponia Lopez [apsaugotas el. paštas]
T205 Ponia Wiley [apsaugotas el. paštas]
T206 Ponas Bynas [apsaugotas el. paštas]

Turime dvi lenteles: Studentai ir Mokytojai Lentelės. Parašykime SQL užklausas, kad sujungtume lentelę naudodami VIDINIS PRISIJUNGIMAS taip:

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

Įvykdžius užklausą, ji sukuria žemiau esančią lentelę.

SQL JOIN tipai

Natūralus prisijungimas

Tai vidinio tipo tipas, kuris sujungia dvi ar daugiau lentelių pagal tą patį stulpelio pavadinimą ir turi tą patį duomenų tipą abiejose lentelėse.

Sintaksė:

 Select * from tablename1 Natural JOIN tablename_2; 

Turime dvi lenteles: Studentai ir Mokytojai Lentelės. Parašykime SQL užklausas, kad sujungtume lentelę naudodami Natūralus PRISIJUNK taip:

 Select * from Students Natural JOIN Teachers; 

Įvykdžius aukščiau pateiktą užklausą, ji sukuria tokią lentelę.

SQL JOIN tipai

KAIRĖ PRISIJUNGTI

The KAIRĖ PRISIJUNGTI naudojama norint gauti visus įrašus iš kairiosios lentelės (lentelė1) ir atitinkančias eilutes ar stulpelius iš dešiniosios lentelės (2 lentelė). Jei abiejose lentelėse nėra atitinkančių eilučių ar stulpelių, ji grąžina NULL.

Sintaksė:

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

Taip pat galime pavaizduoti kairįjį sujungimą naudodami Venno diagramą, kaip nurodyta:

SQL JOIN tipai

Pastaba: kai kuriose duomenų bazėse LEFT JOIN taip pat žinomas kaip LEFT OUTER JOIN.

1 lentelė: Produkto_informacija

Produkto ID Produkto pavadinimas Suma
Pro101 Nešiojamas kompiuteris 56 000
Pro102 Mobilusis 38 000
Pro103 Ausinės 5000
Pro104 Televizija 25 000
Pro105 iPad 60 000

2 lentelė: Kliento_informacija

koks mano monitoriaus ekrano dydis
Kliento vardas Kliento adresas Kliento amžius Produkto ID
Martinas Guptillas San Franciskas, JAV 26 Pro101
Džeimsas Australija 29 Pro103
Ambati Williamson Naujoji Zelandija 27 Pro102
Jofra Archeris pietų Afrika 24 Pro105
Kate Wiley Australija dvidešimt Pro103

Turime dvi lenteles: Produkto Aprašymas ir Customer_Details Lentelės. Parašykime SQL užklausas, kad sujungtume lentelę naudodami KAIRĖ PRISIJUNGTI taip:

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

Įvykdžius užklausą, ji sukuria tokią lentelę.

SQL JOIN tipai

The TEISINGAS PRISIJUNGTI naudojama norint gauti visus įrašus iš dešiniosios lentelės (2 lentelė) ir suderintas eilutes ar stulpelius iš kairiosios lentelės (1 lentelė). Jei abiejose lentelėse nėra atitinkančių eilučių ar stulpelių, ji grąžina NULL.

Sintaksė:

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

Taip pat galime pavaizduoti tinkamą sujungimą naudodami Venno diagramą, kaip nurodyta:

SQL JOIN tipai

Pastaba: Kai kuriose duomenų bazėse RIGHT JOIN taip pat žinomas kaip RIGHT OUTER JOIN.

1 lentelė: Produkto_informacija

ID Produkto pavadinimas Suma
Pro101 Nešiojamas kompiuteris 56 000
Pro102 Mobilusis 38 000
Pro103 Ausinės 5000
Pro104 Televizija 25 000
Pro105 iPad 60 000

2 lentelė: Kliento_informacija

Kliento vardas Kliento adresas Kliento amžius Produkto ID
Martinas Guptillas San Franciskas, JAV 26 Pro101
Džeimsas Australija 29 Pro103
Ambati Williamson Naujoji Zelandija 27 Pro102
Jofra Archeris pietų Afrika 24 Pro105
Omenas Anglija 29 Pro107
Morganas Anglija dvidešimt Pro108

Turime dvi lenteles: Produkto Aprašymas ir Customer_Details Lentelės. Parašykime SQL užklausas, kad sujungtume lentelę naudodami TEISINGAS PRISIJUNGTI taip:

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

Įvykdžius užklausą, ji sukuria žemiau esančią lentelę.

SQL JOIN tipai

FULL JOIN arba FULL Outer JOIN:

Tai abiejų rezultatų derinys KAIRĖ PRISIJUNGTI ir TEISINGAS PRISIJUNGTI . Sujungtos lentelės grąžina visus įrašus iš abiejų lentelių ir, jei lentelėje nerandama atitikmenų, įrašoma NULL. Jis taip pat vadinamas a VISAS IŠORINIS PRIJUNGIMAS .

Sintaksė:

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

arba VISAS IŠORINIS PRIJUNGIMAS

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

Visą išorinį sujungimą taip pat galime pavaizduoti naudodami Venno diagramą, kaip nurodyta:

SQL JOIN tipai

1 lentelė: Produkto_informacija

ID Produkto pavadinimas Suma
Pro101 Nešiojamas kompiuteris 56 000
Pro102 Mobilusis 38 000
Pro103 Ausinės 5000
Pro104 Televizija 25 000
Pro105 iPad 60 000

2 lentelė: Kliento_informacija

Kliento vardas Kliento adresas Kliento amžius Produkto ID
Martinas Guptillas San Franciskas, JAV 26 Pro101
Džeimsas Australija 29 Pro103
Ambati Williamson Naujoji Zelandija 27 Pro102
Jofra Archeris pietų Afrika 24 Pro105
Omenas Anglija 29 Pro107
Morganas Anglija dvidešimt Pro108

Turime dvi lenteles: Produkto Aprašymas ir Customer_Details Lentelės. Parašykime SQL užklausas, kad sujungtume lentelę naudodami PILNAS PRISIJUNK taip:

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

Įvykdžius užklausą, ji sukuria žemiau esančią lentelę.

SQL JOIN tipai

Pastaba: MySQL nepalaiko FULL JOIN sąvokų, todėl galime naudoti UNION ALL sąlygą, kad sujungtume abi lenteles.

Čia yra sintaksė SĄJUNGOS VISI Išlyga lentelių sujungimui.

 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 tipai

KRYŽIAUS JUNGIMAS

Jis taip pat žinomas kaip KARTESIJA PRISIJUNGTI , kuris grąžina dviejų ar daugiau sujungtų lentelių Dekarto sandaugą. The KRYŽIAUS JUNGIMAS sukuria lentelę, kuri sujungia kiekvieną pirmosios lentelės eilutę su kiekviena antra lentelės eilute. Į CROSS JOIN nereikia įtraukti jokių sąlygų.

Sintaksė:

 Select * from table_1 cross join table_2; 

arba

 Select column1, column2, column3 FROM table_1, table_2; 

1 lentelė: Produkto_informacija

ID Produkto pavadinimas Suma
Pro101 Nešiojamas kompiuteris 56 000
Pro102 Mobilusis 38 000
Pro103 Ausinės 5000
Pro104 Televizija 25 000
Pro105 iPad 60 000

2 lentelė: Kliento_informacija

linux kaip pervardyti katalogą
Kliento vardas Kliento adresas Kliento amžius Produkto ID
Martinas Guptillas San Franciskas, JAV 26 Pro101
Džeimsas Australija 29 Pro103
Ambati Williamson Naujoji Zelandija 27 Pro102
Jofra Archeris pietų Afrika 24 Pro105
Omenas Anglija 29 Pro107
Morganas Anglija dvidešimt Pro108

Turime dvi lenteles: Produkto Aprašymas ir Customer_Details Lentelės. Parašykime SQL užklausas, kad sujungtume lentelę naudodami PILNAS PRISIJUNK taip:

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

Įvykdžius užklausą, ji sukuria žemiau esančią lentelę.

SQL JOIN tipai

PATS PRISIJUNK

Tai yra SELF JOIN, naudojamas kuriant lentelę sujungiant save, nes buvo dvi lentelės. Tai leidžia laikinai pavadinti bent vieną lentelę SQL sakinyje.

Sintaksė:

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

1 lentelė ir Tbl2 yra du skirtingi tos pačios lentelės slapyvardžiai.

1 lentelė: Produkto_informacija

ID Produkto pavadinimas Suma
Pro101 Nešiojamas kompiuteris 56 000
Pro102 Mobilusis 38 000
Pro103 Ausinės 5000
Pro104 Televizija 25 000
Pro105 iPad 60 000

Parašykime SQL užklausas, kad sujungtume lentelę naudodami PATS PRISIJUNK taip:

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