logo

Typer SQL JOIN

SQL JOIN

En SQL Join brukes til å hente eller kombinere data (rader eller kolonner) fra to eller flere tabeller basert på de definerte betingelsene.

Tabell 1: Bestilling

Bestillings ID Kunde ID Ordrenavn Produktnavn
12025 101 Peter ABC
12030 105 Robert XYX
12032 110 James XYZ
12034 115 Andrew PQR
12035 120 Mathew AAA

Tabell 2: Kunde

Kunde ID Kundenavn Land
100 Rotete Maxico
101 prins Taiwan
103 Maria Fernandez Tyrkia
105 Jasmine Paris
110 Faf Weasel Indonesia
120 Roma rakett Russland

Nå har vi to bord Rekkefølge og Kunde . Det er en Kunde ID kolonne felles i begge tabellene. Så skriv SQL-spørringen for å definere den generelle relasjonen for å velge samsvarspostene fra begge tabellene.

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

Etter å ha utført ovenstående SQL spørringer, produserer den følgende utdata:

Bestillings ID Kundenavn Land Produktnavn
12025 prins Taiwan ABC
12030 Jasmine Paris XYX
12032 Faf Weasel Indonesia XYZ
12035 Roma rakett Russland AAA

Typer SQL Join

Det er forskjellige typer sammenføyninger som brukes i SQL:

  1. Inner Join / Simple Join
  2. Venstre ytre skjøt / venstre skjøt
  3. Høyre ytre skjøt / Høyre skjøt
  4. Full Ytre Sammenføyning
  5. Cross Join
  6. Bli med selv

Inner Join

Den indre sammenføyningen brukes til å velge alle samsvarende rader eller kolonner i begge tabellene eller så lenge den definerte betingelsen er gyldig i SQL.

Syntaks:

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

Vi kan representere den indre sammenføyningen gjennom Venn-diagrammet, som følger:

Typer SQL JOIN

Tabell 1: Elever

Student ID Student navn Emne LærerID
101 Alexandra Datavitenskap T201
102 Charles Økonomi T202
103 Tom cruise Datavitenskap T201
104 Aaron Finch Elektronikk T203
105 Frø Bajoff Webdesign T204
106 Christopher Engelsk litteratur T205
107 Denim Motedesigner T206

Tabell 2: Lærere

LærerID Lærernavn E-post for lærer
T201 Mr. Davis [e-postbeskyttet]
T202 Fru Jonas [e-postbeskyttet]
T201 Mr. Davis [e-postbeskyttet]
T204 Fru Lopez [e-postbeskyttet]
T205 Fru Wiley [e-postbeskyttet]
T206 MR Bean [e-postbeskyttet]

Vi har to bord: Studenter og Lærere Tabeller. La oss skrive SQL-spørringene for å bli med i tabellen ved å bruke INDRE BLI MED følgende:

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

Etter å ha utført spørringen, produserer den tabellen nedenfor.

Typer SQL JOIN

Naturlig Bli med

Det er en type indre type som slår sammen to eller flere tabeller basert på samme kolonnenavn og har samme datatype til stede i begge tabellene.

Syntaks:

 Select * from tablename1 Natural JOIN tablename_2; 

Vi har to bord: Studenter og Lærere Tabeller. La oss skrive SQL-spørringene for å bli med i tabellen ved å bruke Naturlig BLI MED følgende:

 Select * from Students Natural JOIN Teachers; 

Etter å ha utført spørringen ovenfor, produserer den følgende tabell.

Typer SQL JOIN

VENSTRE BLI MED

De VENSTRE BLI MED brukes til å hente alle poster fra den venstre tabellen (tabell1) og de samsvarende radene eller kolonnene fra den høyre tabellen (tabell2). Hvis begge tabellene ikke inneholder noen samsvarende rader eller kolonner, returnerer det NULL.

Syntaks:

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

Vi kan også representere venstre sammenføyning gjennom Venn-diagrammet, som følger:

Typer SQL JOIN

Merk: I noen databaser er LEFT JOIN også kjent som LEFT OUTER JOIN.

Tabell 1: Produktdetaljer

Produkt ID Produktnavn Beløp
Pro101 Laptop 56 000
Pro102 Mobil 38 000
Pro103 Hodetelefoner 5000
Pro104 Fjernsyn 25 000
Pro105 iPad 60 000

Tabell 2: Kundedetaljer

referanse datatyper i java
Kundenavn Kundeadresse Kundens alder Produkt ID
Martin Guptill San Francisco, USA 26 Pro101
James Australia 29 Pro103
Ambati Williamson New Zealand 27 Pro102
Jofra Archer Sør-Afrika 24 Pro105
Kate Wiley Australia tjue Pro103

Vi har to bord: Produkt detaljer og Kundedetaljer Tabeller. La oss skrive SQL-spørringene for å bli med i tabellen ved å bruke VENSTRE BLI MED følgende:

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

Etter å ha utført spørringen, produserer den følgende tabell.

Typer SQL JOIN

De HØYRE BLI MED brukes til å hente alle poster fra den høyre tabellen (tabell2) og de samsvarende radene eller kolonnene fra den venstre tabellen (tabell1). Hvis begge tabellene ikke inneholder noen samsvarende rader eller kolonner, returnerer det NULL.

Syntaks:

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

Vi kan også representere høyre sammenføyning gjennom Venn-diagrammet, som følger:

Typer SQL JOIN

Merk: I noen databaser er RIGHT JOIN også kjent som RIGHT OUTER JOIN.

Tabell 1: Produktdetaljer

ID Produktnavn Beløp
Pro101 Laptop 56 000
Pro102 Mobil 38 000
Pro103 Hodetelefoner 5000
Pro104 Fjernsyn 25 000
Pro105 iPad 60 000

Tabell 2: Kundedetaljer

Kundenavn Kundeadresse Kundens alder Produkt ID
Martin Guptill San Francisco, USA 26 Pro101
James Australia 29 Pro103
Ambati Williamson New Zealand 27 Pro102
Jofra Archer Sør-Afrika 24 Pro105
Tegn England 29 Pro107
Morgan England tjue Pro108

Vi har to bord: Produkt detaljer og Kundedetaljer Tabeller. La oss skrive SQL-spørringene for å bli med i tabellen ved å bruke HØYRE BLI MED følgende:

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

Etter å ha utført spørringen, produserer den tabellen nedenfor.

Typer SQL JOIN

FULL JOIN eller FULL Ytre JOIN:

Det er et kombinasjonsresultatsett av begge VENSTRE BLI MED og HØYRE BLI MED . De sammenføyde tabellene returnerer alle poster fra begge tabellene, og hvis ingen treff blir funnet i tabellen, plasserer den NULL. Det kalles også en FULL YTTRE FØLGING .

Syntaks:

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

Eller, FULL YTTRE FØLGING

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

Vi kan også representere den fullstendige ytre sammenføyningen gjennom Venn-diagrammet, som følger:

Typer SQL JOIN

Tabell 1: Produktdetaljer

ID Produktnavn Beløp
Pro101 Laptop 56 000
Pro102 Mobil 38 000
Pro103 Hodetelefoner 5000
Pro104 Fjernsyn 25 000
Pro105 iPad 60 000

Tabell 2: Kundedetaljer

Kundenavn Kundeadresse Kundens alder Produkt ID
Martin Guptill San Francisco, USA 26 Pro101
James Australia 29 Pro103
Ambati Williamson New Zealand 27 Pro102
Jofra Archer Sør-Afrika 24 Pro105
Tegn England 29 Pro107
Morgan England tjue Pro108

Vi har to bord: Produkt detaljer og Kundedetaljer Tabeller. La oss skrive SQL-spørringene for å bli med i tabellen ved å bruke FULL BLI MED på følgende måte:

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

Etter å ha utført spørringen, produserer den tabellen nedenfor.

Typer SQL JOIN

Merk: MySQL støtter ikke FULL JOIN-konsepter, så vi kan bruke UNION ALL-klausulen for å kombinere begge tabellene.

Her er syntaksen for UNION ALLE Klausul for å kombinere tabellene.

 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 

Typer SQL JOIN

KORS BLI MED

Det er også kjent som CARTESIAN BLI MED , som returnerer det kartesiske produktet av to eller flere sammenføyde tabeller. De KORS BLI MED produserer en tabell som slår sammen hver rad fra den første tabellen med hver andre tabellrad. Det er ikke påkrevd å inkludere noen betingelse i CROSS JOIN.

Syntaks:

 Select * from table_1 cross join table_2; 

Eller,

 Select column1, column2, column3 FROM table_1, table_2; 

Tabell 1: Produktdetaljer

ID Produktnavn Beløp
Pro101 Laptop 56 000
Pro102 Mobil 38 000
Pro103 Hodetelefoner 5000
Pro104 Fjernsyn 25 000
Pro105 iPad 60 000

Tabell 2: Kundedetaljer

Kundenavn Kundeadresse Kundens alder Produkt ID
Martin Guptill San Francisco, USA 26 Pro101
James Australia 29 Pro103
Ambati Williamson New Zealand 27 Pro102
Jofra Archer Sør-Afrika 24 Pro105
Tegn England 29 Pro107
Morgan England tjue Pro108

Vi har to bord: Produkt detaljer og Kundedetaljer Tabeller. La oss skrive SQL-spørringene for å bli med i tabellen ved å bruke FULL BLI MED på følgende måte:

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

Etter å ha utført spørringen, produserer den tabellen nedenfor.

string array i c-språk
Typer SQL JOIN

SELV BLI MED

Det er en SELF JOIN som brukes til å lage et bord ved å slå seg sammen ettersom det var to bord. Det gir midlertidig navn på minst én tabell i en SQL-setning.

Syntaks:

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

Tabell 1 og Tbl2 er to forskjellige tabellaliaser for samme tabell.

Tabell 1: Produktdetaljer

ID Produktnavn Beløp
Pro101 Laptop 56 000
Pro102 Mobil 38 000
Pro103 Hodetelefoner 5000
Pro104 Fjernsyn 25 000
Pro105 iPad 60 000

La oss skrive SQL-spørringene for å bli med i tabellen ved å bruke SELV BLI MED følgende:

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