SQL JOIN
En SQL Join bruges til at hente eller kombinere data (rækker eller kolonner) fra to eller flere tabeller baseret på de definerede betingelser.
Tabel 1: Bestilling
Ordre 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 |
Tabel 2: Kunde
Kunde ID | Kundenavn | Land |
---|---|---|
100 | Rodet | Maxico |
101 | Prins | Taiwan |
103 | Maria Fernandez | Kalkun |
105 | Jasmin | Paris |
110 | Faf Væsel | Indonesien |
120 | Rom raket | Rusland |
Nu har vi to borde Bestille og Kunde . Der er en Kunde ID kolonne fælles i begge tabeller. Så skriv SQL-forespørgslen for at definere den generelle relation for at vælge matchenes poster fra begge tabeller.
Select Order.OrderID, Customer.CustomerName, Customer.Country, Order.ProductName from Order INNER JOIN Customer ON Order.CustomerID = Customer.CustomerID;
Efter at have udført ovenstående SQL forespørgsler, producerer det følgende output:
Ordre ID | Kundenavn | Land | Produktnavn |
---|---|---|---|
12025 | Prins | Taiwan | ABC |
12030 | Jasmin | Paris | XYX |
12032 | Faf Væsel | Indonesien | XYZ |
12035 | Rom raket | Rusland | AAA |
Typer af SQL Join
Der er forskellige typer joins, der bruges i SQL:
- Indre sammenføjning / Simple sammenføjning
- Venstre Ydre Sammenføjning / Venstre Sammenføjning
- Højre ydre samling / højre samling
- Fuld ydre sammenføjning
- Cross Join
- Deltag selv
Indre Join
Den indre joinforbindelse bruges til at vælge alle matchende rækker eller kolonner i begge tabeller eller så længe den definerede betingelse 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 repræsentere den indre forbindelse gennem Venn-diagrammet, som følger:
Tabel 1: Elever
Studiekort | Elevnavn | Emne | Lærer-ID |
---|---|---|---|
101 | Alexandra | Computer videnskab | T201 |
102 | Charles | Økonomi | T202 |
103 | tom Cruise | Computer videnskab | T201 |
104 | Aaron Finch | Elektronik | T203 |
105 | Frø Bajoff | Webdesign | T204 |
106 | Christopher | Engelsk litteratur | T205 |
107 | Denim | Mode designer | T206 |
Tabel 2: Lærere
Lærer-ID | Lærernavn | LærerE-mail |
---|---|---|
T201 | Mr. Davis | [e-mail beskyttet] |
T202 | Fru Jonas | [e-mail beskyttet] |
T201 | Mr. Davis | [e-mail beskyttet] |
T204 | Fru Lopez | [e-mail beskyttet] |
T205 | Fru Wiley | [e-mail beskyttet] |
T206 | Mr. Bean | [e-mail beskyttet] |
Vi har to borde: Studerende og Lærere Tabeller. Lad os skrive SQL-forespørgslerne for at slutte sig til tabellen ved hjælp af INDRE JOIN som følger:
Select Student_ID, StudentName, TeacherName, TeacherEmail FROM Students INNER JOIN Teachers ON Students.TeacherID = Teachers.TeacherID;
Efter at have udført forespørgslen, producerer den nedenstående tabel.
Naturlig Deltag
Det er en type indre type, der forbinder to eller flere tabeller baseret på det samme kolonnenavn og har den samme datatype til stede på begge tabeller.
Syntaks:
Select * from tablename1 Natural JOIN tablename_2;
Vi har to borde: Studerende og Lærere Tabeller. Lad os skrive SQL-forespørgslerne for at slutte sig til tabellen ved hjælp af Naturlig JOIN som følger:
Select * from Students Natural JOIN Teachers;
Efter at have udført ovenstående forespørgsel, producerer den følgende tabel.
VENSTRE JOIN
Det VENSTRE JOIN bruges til at hente alle poster fra den venstre tabel (tabel1) og de matchede rækker eller kolonner fra den højre tabel (tabel2). Hvis begge tabeller ikke indeholder matchende rækker 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å repræsentere den venstre sammenføjning gennem Venn-diagrammet, som følger:
Bemærk: I nogle databaser er LEFT JOIN også kendt som LEFT OUTER JOIN.
Tabel 1: Produktdetaljer
ProduktID | Produktnavn | Beløb |
---|---|---|
Pro101 | Bærbar | 56000 |
Pro102 | Mobil | 38.000 |
Pro103 | Hovedtelefoner | 5000 |
Pro104 | Television | 25.000 |
Pro105 | iPad | 60.000 |
Tabel 2: Kundedetaljer
selen grundlæggende
Kundenavn | Kundeadresse | Kundens Alder | ProduktID |
---|---|---|---|
Martin Guptill | San Francisco, USA | 26 | Pro101 |
James | Australien | 29 | Pro103 |
Ambati Williamson | New Zealand | 27 | Pro102 |
Jofra Archer | Sydafrika | 24 | Pro105 |
Kate Wiley | Australien | tyve | Pro103 |
Vi har to borde: Produkt_detaljer og Kunde_detaljer Tabeller. Lad os skrive SQL-forespørgslerne for at slutte sig til tabellen ved hjælp af VENSTRE JOIN som følger:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Efter at have udført forespørgslen, producerer den følgende tabel.
RIGHT JOIN eller RIGHT Ydre JOIN:
Det HØJRE JOIN bruges til at hente alle poster fra den højre tabel (tabel2) og de matchede rækker eller kolonner fra den venstre tabel (tabel1). Hvis begge tabeller ikke indeholder matchende rækker 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å repræsentere den rigtige sammenføjning gennem Venn-diagrammet, som følger:
Bemærk: I nogle databaser er RIGHT JOIN også kendt som RIGHT OUTER JOIN.
Tabel 1: Produktdetaljer
ID | Produktnavn | Beløb |
---|---|---|
Pro101 | Bærbar | 56000 |
Pro102 | Mobil | 38.000 |
Pro103 | Hovedtelefoner | 5000 |
Pro104 | Television | 25.000 |
Pro105 | iPad | 60.000 |
Tabel 2: Kundedetaljer
Kundenavn | Kundeadresse | Kundens Alder | ProduktID |
---|---|---|---|
Martin Guptill | San Francisco, USA | 26 | Pro101 |
James | Australien | 29 | Pro103 |
Ambati Williamson | New Zealand | 27 | Pro102 |
Jofra Archer | Sydafrika | 24 | Pro105 |
Omen | England | 29 | Pro107 |
Morgan | England | tyve | Pro108 |
Vi har to borde: Produkt_detaljer og Kunde_detaljer Tabeller. Lad os skrive SQL-forespørgslerne for at slutte sig til tabellen ved hjælp af HØJRE JOIN som følger:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Efter at have udført forespørgslen, producerer den nedenstående tabel.
FULD JOIN eller FULD YDER JOIN:
Det er et kombinationsresultatsæt af begge VENSTRE JOIN og HØJRE JOIN . De sammenføjede tabeller returnerer alle poster fra begge tabeller, og hvis der ikke findes nogen overensstemmelser i tabellen, placeres NULL. Det kaldes også en FULD YDRE TILSLUTNING .
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, FULD YDRE TILSLUTNING
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å repræsentere den fulde ydre sammenføjning gennem Venn-diagrammet, som følger:
Tabel 1: Produktdetaljer
ID | Produktnavn | Beløb |
---|---|---|
Pro101 | Bærbar | 56000 |
Pro102 | Mobil | 38.000 |
Pro103 | Hovedtelefoner | 5000 |
Pro104 | Television | 25.000 |
Pro105 | iPad | 60.000 |
Tabel 2: Kundedetaljer
Kundenavn | Kundeadresse | Kundens Alder | ProduktID |
---|---|---|---|
Martin Guptill | San Francisco, USA | 26 | Pro101 |
James | Australien | 29 | Pro103 |
Ambati Williamson | New Zealand | 27 | Pro102 |
Jofra Archer | Sydafrika | 24 | Pro105 |
Omen | England | 29 | Pro107 |
Morgan | England | tyve | Pro108 |
Vi har to borde: Produkt_detaljer og Kunde_detaljer Tabeller. Lad os skrive SQL-forespørgslerne for at slutte sig til tabellen ved hjælp af FULD JOIN som følger:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details FULL JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Efter at have udført forespørgslen, producerer den nedenstående tabel.
Bemærk: MySQL understøtter ikke FULL JOIN-koncepter, så vi kan bruge UNION ALL-sætning til at kombinere begge tabeller.
Her er syntaksen for UNION ALLE Klausul til at kombinere tabellerne.
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
KRYDSFIND
Det er også kendt som CARTESIAN JOIN , som returnerer det kartesiske produkt af to eller flere sammenføjede tabeller. Det KRYDSFIND producerer en tabel, der fletter hver række fra den første tabel med hver anden tabelrække. Det er ikke nødvendigt at inkludere nogen betingelse i CROSS JOIN.
Syntaks:
Select * from table_1 cross join table_2;
Eller,
Select column1, column2, column3 FROM table_1, table_2;
Tabel 1: Produktdetaljer
ID | Produktnavn | Beløb |
---|---|---|
Pro101 | Bærbar | 56000 |
Pro102 | Mobil | 38.000 |
Pro103 | Hovedtelefoner | 5000 |
Pro104 | Television | 25.000 |
Pro105 | iPad | 60.000 |
Tabel 2: Kundedetaljer
Kundenavn | Kundeadresse | Kundens Alder | ProduktID |
---|---|---|---|
Martin Guptill | San Francisco, USA | 26 | Pro101 |
James | Australien | 29 | Pro103 |
Ambati Williamson | New Zealand | 27 | Pro102 |
Jofra Archer | Sydafrika | 24 | Pro105 |
Omen | England | 29 | Pro107 |
Morgan | England | tyve | Pro108 |
Vi har to borde: Produkt_detaljer og Kunde_detaljer Tabeller. Lad os skrive SQL-forespørgslerne for at slutte sig til tabellen ved hjælp af FULD JOIN som følger:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details, Customer_Details;
Efter at have udført forespørgslen, producerer den nedenstående tabel.
singleton design mønster java
TILMELD DIG SELV
Det er en SELF JOIN, der bruges til at skabe et bord ved at forbinde sig selv, da der var to borde. Den laver midlertidig navngivning af mindst én tabel i en SQL-sætning.
Syntaks:
Select column1, column2, column(s) FROM table_1 Tbl1, table_2 Tbl2 WHERE condition;
tabel 1 og Tbl2 er to forskellige tabelaliasser for den samme tabel.
Tabel 1: Produktdetaljer
ID | Produktnavn | Beløb |
---|---|---|
Pro101 | Bærbar | 56000 |
Pro102 | Mobil | 38.000 |
Pro103 | Hovedtelefoner | 5000 |
Pro104 | Television | 25.000 |
Pro105 | iPad | 60.000 |
Lad os skrive SQL-forespørgslerne for at slutte sig til tabellen ved hjælp af TILMELD DIG SELV som følger:
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;>