SQL JOIN
En SQL Join används för att hämta eller kombinera data (rader eller kolumner) från två eller flera tabeller baserat på de definierade villkoren.
Tabell 1: Beställning
OrderID | Kundnummer | OrderName | Produktnamn |
---|---|---|---|
12025 | 101 | Peter | ABC |
12030 | 105 | Robert | XYX |
12032 | 110 | James | XYZ |
12034 | 115 | Andrew | PQR |
12035 | 120 | Mathew | AAA |
Tabell 2: Kund
Kundnummer | Köparens namn | Land |
---|---|---|
100 | Rörig | Maxico |
101 | Prins | Taiwan |
103 | Maria Fernandez | Kalkon |
105 | Jasmin | Paris |
110 | Faf Weasel | Indonesien |
120 | Romen Rocket | Ryssland |
Nu har vi två bord Beställa och den Kund . Det finns en Kundnummer kolumn gemensam i båda tabellerna. Så skriv SQL-frågan för att definiera den allmänna relationen för att välja matchningarnas poster från båda tabellerna.
Select Order.OrderID, Customer.CustomerName, Customer.Country, Order.ProductName from Order INNER JOIN Customer ON Order.CustomerID = Customer.CustomerID;
Efter att ha utfört ovanstående SQL frågor ger den följande utdata:
OrderID | Köparens namn | Land | Produktnamn |
---|---|---|---|
12025 | Prins | Taiwan | ABC |
12030 | Jasmin | Paris | XYX |
12032 | Faf Weasel | Indonesien | XYZ |
12035 | Romen Rocket | Ryssland | AAA |
Typer av SQL Join
Det finns olika typer av joins som används i SQL:
- Inner Join / Simple Join
- Left Outer Join / Left Join
- Höger yttre fog / höger fog
- Full Outer Join
- Cross Join
- Gå med själv
Inre koppling
Den inre kopplingen används för att välja alla matchande rader eller kolumner i båda tabellerna eller så länge det definierade villkoret är giltigt i SQL.
Syntax:
Select column_1, column_2, column_3 FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
Vi kan representera den inre sammanfogningen genom Venn-diagrammet, enligt följande:
Tabell 1: Elever
Student-ID | Elevs namn | Ämne | Lärar-ID |
---|---|---|---|
101 | Alexandra | Datavetenskap | T201 |
102 | Charles | Ekonomi | T202 |
103 | tom Cruise | Datavetenskap | T201 |
104 | Aaron Finch | Elektronik | T203 |
105 | Seed Bajoff | Webbdesign | T204 |
106 | Christopher | Engelsk litteratur | T205 |
107 | Denim | Mode designer | T206 |
Tabell 2: Lärare
Lärar-ID | Lärarnamn | Lärarens e-post |
---|---|---|
T201 | Mr Davis | [e-postskyddad] |
T202 | Fru Jonas | [e-postskyddad] |
T201 | Mr Davis | [e-postskyddad] |
T204 | Fru Lopez | [e-postskyddad] |
T205 | Mrs Wiley | [e-postskyddad] |
T206 | Mr Bean | [e-postskyddad] |
Vi har två bord: Studenter och den Lärare Tabeller. Låt oss skriva SQL-frågorna för att ansluta till tabellen med hjälp av INRE KOPPLING som följer:
Select Student_ID, StudentName, TeacherName, TeacherEmail FROM Students INNER JOIN Teachers ON Students.TeacherID = Teachers.TeacherID;
Efter att ha kört frågan producerar den tabellen nedan.
Naturlig gå med
Det är en typ av inre typ som sammanfogar två eller flera tabeller baserat på samma kolumnnamn och har samma datatyp närvarande i båda tabellerna.
Syntax:
Select * from tablename1 Natural JOIN tablename_2;
Vi har två bord: Studenter och den Lärare Tabeller. Låt oss skriva SQL-frågorna för att ansluta till tabellen med hjälp av Naturligt GÅ MED som följer:
Select * from Students Natural JOIN Teachers;
Efter att ha kört ovanstående fråga producerar den följande tabell.
VÄNSTER GÅ MED
De VÄNSTER GÅ MED används för att hämta alla poster från den vänstra tabellen (tabell1) och de matchade raderna eller kolumnerna från den högra tabellen (tabell2). Om båda tabellerna inte innehåller några matchade rader eller kolumner, returnerar det NULL.
Syntax:
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 också representera den vänstra sammanfogningen genom Venn-diagrammet, enligt följande:
Obs: I vissa databaser är LEFT JOIN även känd som LEFT OUTER JOIN.
Tabell 1: Produktdetaljer
Serienummer | Produktnamn | Belopp |
---|---|---|
Pro101 | Bärbar dator | 56 000 |
Pro102 | Mobil | 38 000 |
Pro103 | Hörlurar | 5 000 |
Pro104 | Tv | 25 000 |
Pro105 | iPad | 60 000 |
Tabell 2: Kundinformation
gimp rektangel rita
Köparens namn | Kundadress | Kundens ålder | Serienummer |
---|---|---|---|
Martin Guptill | San Francisco, USA | 26 | Pro101 |
James | Australien | 29 | Pro103 |
Ambati Williamson | Nya Zeeland | 27 | Pro102 |
Jofra Archer | Sydafrika | 24 | Pro105 |
Kate Wiley | Australien | tjugo | Pro103 |
Vi har två bord: Produktinformation och den Kunddetaljer Tabeller. Låt oss skriva SQL-frågorna för att gå med i tabellen med hjälp av VÄNSTER GÅ MED som följer:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Efter att ha kört frågan producerar den följande tabell.
RIGHT JOIN eller RIGHT Outer JOIN:
De HÖGER GÅ MED används för att hämta alla poster från den högra tabellen (tabell2) och de matchade raderna eller kolumnerna från den vänstra tabellen (tabell1). Om båda tabellerna inte innehåller några matchade rader eller kolumner, returnerar det NULL.
Syntax:
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 också representera den högra sammanfogningen genom Venn-diagrammet, enligt följande:
Obs: I vissa databaser är RIGHT JOIN även känd som RIGHT OUTER JOIN.
Tabell 1: Produktdetaljer
ID | Produktnamn | Belopp |
---|---|---|
Pro101 | Bärbar dator | 56 000 |
Pro102 | Mobil | 38 000 |
Pro103 | Hörlurar | 5 000 |
Pro104 | Tv | 25 000 |
Pro105 | iPad | 60 000 |
Tabell 2: Kundinformation
Köparens namn | Kundadress | Kundens ålder | Serienummer |
---|---|---|---|
Martin Guptill | San Francisco, USA | 26 | Pro101 |
James | Australien | 29 | Pro103 |
Ambati Williamson | Nya Zeeland | 27 | Pro102 |
Jofra Archer | Sydafrika | 24 | Pro105 |
Omen | England | 29 | Pro107 |
Morgan | England | tjugo | Pro108 |
Vi har två bord: Produktinformation och den Kunddetaljer Tabeller. Låt oss skriva SQL-frågorna för att ansluta till tabellen med hjälp av HÖGER GÅ MED som följer:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Efter att ha kört frågan producerar den tabellen nedan.
FULL JOIN eller FULL YTTER JOIN:
Det är en kombinationsresultatuppsättning av båda VÄNSTER GÅ MED och HÖGER GÅ MED . De sammanfogade tabellerna returnerar alla poster från båda tabellerna och om inga matchningar hittas i tabellen placeras NULL. Det kallas också a FULLSTÄNDIG YTTRE JOIN .
Syntax:
strängformaterare
Select column_1, column_2, column(s) FROM table_1 FULL JOIN table_2 ON table_1.column_name = table_2.column_name;
Eller, FULLSTÄNDIG YTTRE JOIN
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 också representera den fullständiga yttre sammanfogningen genom Venn-diagrammet, enligt följande:
Tabell 1: Produktdetaljer
ID | Produktnamn | Belopp |
---|---|---|
Pro101 | Bärbar dator | 56 000 |
Pro102 | Mobil | 38 000 |
Pro103 | Hörlurar | 5 000 |
Pro104 | Tv | 25 000 |
Pro105 | iPad | 60 000 |
Tabell 2: Kundinformation
Köparens namn | Kundadress | Kundens ålder | Serienummer |
---|---|---|---|
Martin Guptill | San Francisco, USA | 26 | Pro101 |
James | Australien | 29 | Pro103 |
Ambati Williamson | Nya Zeeland | 27 | Pro102 |
Jofra Archer | Sydafrika | 24 | Pro105 |
Omen | England | 29 | Pro107 |
Morgan | England | tjugo | Pro108 |
Vi har två bord: Produktinformation och den Kunddetaljer Tabeller. Låt oss skriva SQL-frågorna för att ansluta till tabellen med hjälp av FULL GÅ MED enligt följande:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details FULL JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Efter att ha kört frågan producerar den tabellen nedan.
Notera: MySQL stöder inte FULL JOIN-koncept, så vi kan använda UNION ALL-satsen för att kombinera båda tabellerna.
Här är syntaxen för UNION ALLA Klausul för att kombinera tabellerna.
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-GÅ MED
Det är också känt som CARTESIAN GÅ MED , som returnerar den kartesiska produkten av två eller flera sammanfogade tabeller. De KORS-GÅ MED skapar en tabell som slår samman varje rad från den första tabellen med varje andra tabellrad. Det är inte nödvändigt att inkludera något villkor i CROSS JOIN.
Syntax:
Select * from table_1 cross join table_2;
Eller,
Select column1, column2, column3 FROM table_1, table_2;
Tabell 1: Produktdetaljer
ID | Produktnamn | Belopp |
---|---|---|
Pro101 | Bärbar dator | 56 000 |
Pro102 | Mobil | 38 000 |
Pro103 | Hörlurar | 5 000 |
Pro104 | Tv | 25 000 |
Pro105 | iPad | 60 000 |
Tabell 2: Kundinformation
Köparens namn | Kundadress | Kundens ålder | Serienummer |
---|---|---|---|
Martin Guptill | San Francisco, USA | 26 | Pro101 |
James | Australien | 29 | Pro103 |
Ambati Williamson | Nya Zeeland | 27 | Pro102 |
Jofra Archer | Sydafrika | 24 | Pro105 |
Omen | England | 29 | Pro107 |
Morgan | England | tjugo | Pro108 |
Vi har två bord: Produktinformation och den Kunddetaljer Tabeller. Låt oss skriva SQL-frågorna för att ansluta till tabellen med hjälp av FULL GÅ MED enligt följande:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details, Customer_Details;
Efter att ha kört frågan producerar den tabellen nedan.
GÅ MED SJÄLV
Det är en SELF JOIN som används för att skapa en tabell genom att sammanfoga sig själv eftersom det fanns två tabeller. Det gör temporära namngivning av minst en tabell i en SQL-sats.
Syntax:
Select column1, column2, column(s) FROM table_1 Tbl1, table_2 Tbl2 WHERE condition;
bord 1 och Tbl2 är två olika tabellalias för samma tabell.
Tabell 1: Produktdetaljer
ID | Produktnamn | Belopp |
---|---|---|
Pro101 | Bärbar dator | 56 000 |
Pro102 | Mobil | 38 000 |
Pro103 | Hörlurar | 5 000 |
Pro104 | Tv | 25 000 |
Pro105 | iPad | 60 000 |
Låt oss skriva SQL-frågorna för att ansluta till tabellen med hjälp av GÅ MED SJÄLV som följer:
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;>