logo

Az SQL JOIN típusai

SQL JOIN

Az SQL-illesztés két vagy több táblából adatok (sorok vagy oszlopok) lekérésére vagy kombinálására szolgál a meghatározott feltételek alapján.

1. táblázat: Rend

Rendelés azonosító Ügyfél-azonosító OrderName Termék név
12025 101 Péter ABC
12030 105 Robert XYX
12032 110 James XYZ
12034 115 András PQR
12035 120 Mathew AAA

2. táblázat: Ügyfél

Ügyfél-azonosító Ügyfél neve Ország
100 Rendetlen Maxico
101 Herceg Tajvan
103 Maria Fernandez pulyka
105 Jázmin Párizs
110 Faf Weasel Indonézia
120 Róma rakéta Oroszország

Most két asztalunk van Rendelés és a Vevő . Van egy Ügyfél-azonosító oszlop közös mindkét táblázatban. Tehát írja meg az SQL lekérdezést az általános kapcsolat meghatározásához, amellyel mindkét táblából kiválaszthatja az egyezések rekordjait.

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

A fentiek végrehajtása után SQL lekérdezések esetén a következő kimenetet adja:

Rendelés azonosító Ügyfél neve Ország Termék név
12025 Herceg Tajvan ABC
12030 Jázmin Párizs XYX
12032 Faf Weasel Indonézia XYZ
12035 Róma rakéta Oroszország AAA

Az SQL csatlakozás típusai

Az SQL-ben különböző típusú csatlakozásokat használnak:

  1. Belső csatlakozás / Egyszerű csatlakozás
  2. Bal külső csatlakozás / bal oldali csatlakozás
  3. Jobb külső csatlakozás / jobb csatlakozás
  4. Teljes külső csatlakozás
  5. Cross Join
  6. Önálló csatlakozás

Belső összekapcsolás

A belső összekapcsolás az összes egyező sor vagy oszlop kijelölésére szolgál mindkét táblában, vagy mindaddig, amíg a meghatározott feltétel érvényes az SQL-ben.

Szintaxis:

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

A belső csatlakozást a Venn-diagramon keresztül ábrázolhatjuk a következőképpen:

Az SQL JOIN típusai

1. táblázat: Diákok

Diákigazolvány Tanuló név Tantárgy Tanárazonosító
101 Alexandra Számítástechnika T201
102 Károly Közgazdaságtan T202
103 Tom Cruise Számítástechnika T201
104 Aaron Finch Elektronika T203
105 Mag Bajoff Web tervezés T204
106 Christopher Angol irodalom T205
107 Farmer Divattervező T206

2. táblázat: Tanárok

Tanárazonosító Tanár neve TeacherEmail
T201 Mr. Davis [e-mail védett]
T202 Jonas asszony [e-mail védett]
T201 Mr. Davis [e-mail védett]
T204 Lopez asszony [e-mail védett]
T205 Wiley asszony [e-mail védett]
T206 Mr Bean [e-mail védett]

Két asztalunk van: Diákok és a Tanárok Táblázatok. Írjuk meg az SQL-lekérdezéseket a táblához való csatlakozáshoz BELSŐ ÖSSZEKAPCSOLÁS alábbiak szerint:

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

A lekérdezés végrehajtása után az alábbi táblázatot állítja elő.

Az SQL JOIN típusai

Természetes csatlakozás

Ez egy olyan belső típus, amely két vagy több táblát kapcsol össze ugyanazon oszlopnév alapján, és mindkét táblán ugyanaz az adattípus található.

Szintaxis:

 Select * from tablename1 Natural JOIN tablename_2; 

Két asztalunk van: Diákok és a Tanárok Táblázatok. Írjuk meg az SQL-lekérdezéseket a táblához való csatlakozáshoz Természetes CSATLAKOZÁS alábbiak szerint:

 Select * from Students Natural JOIN Teachers; 

A fenti lekérdezés végrehajtása után a következő táblázatot állítja elő.

Az SQL JOIN típusai

BAL CSATLAKOZÁS

A BAL CSATLAKOZÁS A bal oldali táblából (tábla1) az összes rekordot, a jobb oldali táblából (tábla2) pedig az egyező sorokat vagy oszlopokat kéri le. Ha mindkét tábla nem tartalmaz egyező sort vagy oszlopot, akkor a NULL értéket adja vissza.

Szintaxis:

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

A bal oldali csatlakozást a Venn-diagramon keresztül is ábrázolhatjuk, az alábbiak szerint:

Az SQL JOIN típusai

Megjegyzés: Egyes adatbázisokban a LEFT JOIN más néven LEFT OUTER JOIN.

1. táblázat: Termék_részletek

Termék azonosító Termék név Összeg
Pro101 Laptop 56000
Pro102 Mobil 38000
Pro103 Fejhallgató 5000
Pro104 Televízió 25000
Pro105 iPad 60 000

2. táblázat: Customer_Details

hogyan szünteted meg a kijelölést a gimpben
Ügyfél neve CustomerAddress Ügyfélkor Termék azonosító
Martin Guptill San Francisco, USA 26 Pro101
James Ausztrália 29 Pro103
Ambati Williamson Új Zéland 27 Pro102
Jofra Archer Dél-Afrika 24 Pro105
Kate Wiley Ausztrália húsz Pro103

Két asztalunk van: Termék leírás és a Vásárló adatai Táblázatok. Írjuk meg az SQL-lekérdezéseket a táblához való csatlakozáshoz BAL CSATLAKOZÁS alábbiak szerint:

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

A lekérdezés végrehajtása után a következő táblázatot állítja elő.

Az SQL JOIN típusai

A JOBB CSATLAKOZÁS az összes rekord lekérésére szolgál a jobb oldali táblából (2. táblázat), és az egyező sorokat vagy oszlopokat a bal oldali táblából (1. táblázat). Ha mindkét tábla nem tartalmaz egyező sort vagy oszlopot, akkor a NULL értéket adja vissza.

Szintaxis:

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

A megfelelő illesztést a Venn-diagramon keresztül is ábrázolhatjuk, az alábbiak szerint:

Az SQL JOIN típusai

Megjegyzés: Egyes adatbázisokban a RIGHT JOIN-t RIGHT OUTER JOIN néven is ismerik.

1. táblázat: Termék_részletek

ID Termék név Összeg
Pro101 Laptop 56000
Pro102 Mobil 38000
Pro103 Fejhallgató 5000
Pro104 Televízió 25000
Pro105 iPad 60 000

2. táblázat: Customer_Details

Ügyfél neve CustomerAddress Ügyfélkor Termék azonosító
Martin Guptill San Francisco, USA 26 Pro101
James Ausztrália 29 Pro103
Ambati Williamson Új Zéland 27 Pro102
Jofra Archer Dél-Afrika 24 Pro105
Ómen Anglia 29 Pro107
Morgan Anglia húsz Pro108

Két asztalunk van: Termék leírás és a Vásárló adatai Táblázatok. Írjuk meg az SQL-lekérdezéseket a táblához való csatlakozáshoz JOBB CSATLAKOZÁS alábbiak szerint:

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

A lekérdezés végrehajtása után az alábbi táblázatot állítja elő.

Az SQL JOIN típusai

TELJES CSATLAKOZÁS vagy TELJES külső csatlakozás:

Ez a kettő kombinációja BAL CSATLAKOZÁS és JOBB CSATLAKOZÁS . Az egyesített táblák mindkét táblából visszaadják az összes rekordot, és ha nem található egyezés a táblában, akkor NULL-t helyez el. Más néven a TELJES KÜLSŐ CSATLAKOZÁS .

Szintaxis:

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

Vagy, TELJES KÜLSŐ CSATLAKOZÁS

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

A teljes külső csatlakozást a Venn-diagramon keresztül is ábrázolhatjuk, az alábbiak szerint:

Az SQL JOIN típusai

1. táblázat: Termék_részletek

ID Termék név Összeg
Pro101 Laptop 56000
Pro102 Mobil 38000
Pro103 Fejhallgató 5000
Pro104 Televízió 25000
Pro105 iPad 60 000

2. táblázat: Customer_Details

android verziók
Ügyfél neve CustomerAddress Ügyfélkor Termék azonosító
Martin Guptill San Francisco, USA 26 Pro101
James Ausztrália 29 Pro103
Ambati Williamson Új Zéland 27 Pro102
Jofra Archer Dél-Afrika 24 Pro105
Ómen Anglia 29 Pro107
Morgan Anglia húsz Pro108

Két asztalunk van: Termék leírás és a Vásárló adatai Táblázatok. Írjuk meg az SQL-lekérdezéseket a táblához való csatlakozáshoz TELJES CSATLAKOZZ az alábbiak szerint:

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

A lekérdezés végrehajtása után az alábbi táblázatot állítja elő.

Az SQL JOIN típusai

Megjegyzés: A MySQL nem támogatja a FULL JOIN fogalmakat, ezért használhatjuk az UNION ALL záradékot a két tábla kombinálásához.

Itt van a szintaxis UNION ALL Záradék a táblák kombinálásához.

 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 

Az SQL JOIN típusai

KERESZT CSATLAKOZÁS

Úgy is ismert, mint KARTÉZI CSATLAKOZÁS , amely két vagy több összekapcsolt tábla derékszögű szorzatát adja vissza. A KERESZTES CSATLAKOZÁS létrehoz egy táblázatot, amely egyesíti az első tábla minden sorát a második táblázatsorokkal. Nem szükséges semmilyen feltételt megadni a CROSS JOIN-ban.

Szintaxis:

 Select * from table_1 cross join table_2; 

Vagy,

 Select column1, column2, column3 FROM table_1, table_2; 

1. táblázat: Termék_részletek

ID Termék név Összeg
Pro101 Laptop 56000
Pro102 Mobil 38000
Pro103 Fejhallgató 5000
Pro104 Televízió 25000
Pro105 iPad 60 000

2. táblázat: Customer_Details

Ügyfél neve CustomerAddress Ügyfélkor Termék azonosító
Martin Guptill San Francisco, USA 26 Pro101
James Ausztrália 29 Pro103
Ambati Williamson Új Zéland 27 Pro102
Jofra Archer Dél-Afrika 24 Pro105
Ómen Anglia 29 Pro107
Morgan Anglia húsz Pro108

Két asztalunk van: Termék leírás és a Vásárló adatai Táblázatok. Írjuk meg az SQL-lekérdezéseket a táblához való csatlakozáshoz TELJES CSATLAKOZZ az alábbiak szerint:

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

A lekérdezés végrehajtása után az alábbi táblázatot állítja elő.

Az SQL JOIN típusai

ÖN CSATLAKOZÁS

Ez egy SELF JOIN, amelyet egy tábla létrehozására használnak úgy, hogy önmagát összekapcsolja, mivel két tábla volt. Legalább egy tábla ideiglenes elnevezését teszi lehetővé egy SQL utasításban.

Szintaxis:

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

Asztal 1 és Tbl2 két különböző táblaalias ugyanannak a táblának.

1. táblázat: Termék_részletek

ID Termék név Összeg
Pro101 Laptop 56000
Pro102 Mobil 38000
Pro103 Fejhallgató 5000
Pro104 Televízió 25000
Pro105 iPad 60 000

Írjuk meg az SQL-lekérdezéseket a táblához való csatlakozáshoz ÖN CSATLAKOZÁS alábbiak szerint:

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