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:
- Inner Join / Simple Join
- Venstre ytre skjøt / venstre skjøt
- Høyre ytre skjøt / Høyre skjøt
- Full Ytre Sammenføyning
- Cross Join
- 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:
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.
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.
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:
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.
RIGHT JOIN eller RIGHT Ytre 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:
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.
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:
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.
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
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
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;>