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:
- Belső csatlakozás / Egyszerű csatlakozás
- Bal külső csatlakozás / bal oldali csatlakozás
- Jobb külső csatlakozás / jobb csatlakozás
- Teljes külső csatlakozás
- Cross Join
- Ö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:
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ő.
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ő.
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:
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ő.
RIGHT JOIN vagy RIGHT Outer JOIN:
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:
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ő.
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:
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ő.
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
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ő.
Ö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;>