logo

Typer af SQL JOIN

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:

  1. Indre sammenføjning / Simple sammenføjning
  2. Venstre Ydre Sammenføjning / Venstre Sammenføjning
  3. Højre ydre samling / højre samling
  4. Fuld ydre sammenføjning
  5. Cross Join
  6. 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:

Typer af SQL JOIN

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.

Typer af SQL JOIN

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.

Typer af SQL JOIN

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:

Typer af SQL JOIN

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.

Typer af SQL 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:

Typer af SQL JOIN

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.

Typer af SQL JOIN

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:

Typer af SQL 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 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.

Typer af SQL JOIN

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 

Typer af SQL JOIN

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
Typer af SQL JOIN

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