SQL-join
Een SQL Join wordt gebruikt om gegevens (rijen of kolommen) uit twee of meer tabellen op te halen of te combineren op basis van de gedefinieerde voorwaarden.
Tabel 1: Bestelling
Order ID | Klanten ID | Bestelnaam | Productnaam |
---|---|---|---|
12025 | 101 | Petrus | abc |
12030 | 105 | Robert | XYX |
12032 | 110 | Jakobus | XYZ |
12034 | 115 | Andreas | PQR |
12035 | 120 | Mathew | AAA |
Tabel 2: Klant
Klanten ID | Klantnaam | Land |
---|---|---|
100 | Rommelig | Maxico |
101 | Prins | Taiwan |
103 | Maria Fernandez | Kalkoen |
105 | Jasmijn | Parijs |
110 | Faf Wezel | Indonesië |
120 | Rome raket | Rusland |
Nu hebben we twee tabellen Volgorde en de Klant . Er is een Klanten ID kolom die in beide tabellen voorkomt. Schrijf dus de SQL-query om de algemene relatie te definiëren om de records van de overeenkomsten uit beide tabellen te selecteren.
Select Order.OrderID, Customer.CustomerName, Customer.Country, Order.ProductName from Order INNER JOIN Customer ON Order.CustomerID = Customer.CustomerID;
Na het uitvoeren van bovenstaande SQL query's produceert het de volgende uitvoer:
Order ID | Klantnaam | Land | Productnaam |
---|---|---|---|
12025 | Prins | Taiwan | abc |
12030 | Jasmijn | Parijs | XYX |
12032 | Faf Wezel | Indonesië | XYZ |
12035 | Rome raket | Rusland | AAA |
Soorten SQL-join
Er worden verschillende soorten joins gebruikt in SQL:
- Innerlijke verbinding / Eenvoudige verbinding
- Linker buitenste verbinding / Linker verbinding
- Rechter buitenste verbinding / Rechter verbinding
- Volledige buitenste join
- Kruis samenvoegen
- Zelf meedoen
Innerlijke verbinding
De inner join wordt gebruikt om alle overeenkomende rijen of kolommen in beide tabellen te selecteren, of zolang de gedefinieerde voorwaarde geldig is in SQL.
Syntaxis:
Select column_1, column_2, column_3 FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
We kunnen de inner join als volgt weergeven via het Venn-diagram:
Tabel 1: Studenten
Student_ID | Studenten naam | Onderwerp | Leraar-ID |
---|---|---|---|
101 | Alexandra | Computertechnologie | T201 |
102 | Karel | Economie | T202 |
103 | Tom Cruise | Computertechnologie | T201 |
104 | Aäron Finch | Elektronica | T203 |
105 | Zaad Bajoff | Web ontwerpen | T204 |
106 | Christoffel | Engelse literatuur | T205 |
107 | Denim | Mode ontwerper | T206 |
Tabel 2: Leraren
Leraar-ID | Naam leraar | Docent E-mail |
---|---|---|
T201 | Meneer Davis | [e-mailadres beveiligd] |
T202 | Mevrouw Jonas | [e-mailadres beveiligd] |
T201 | Meneer Davis | [e-mailadres beveiligd] |
T204 | Mevrouw Lopez | [e-mailadres beveiligd] |
T205 | Mevrouw Wiley | [e-mailadres beveiligd] |
T206 | Meneer Boon | [e-mailadres beveiligd] |
We hebben twee tabellen: Studenten en de Leraren Tafels. Laten we de SQL-query's schrijven om aan de tabel deel te nemen met behulp van de BINNENSTE VERBINDING als volgt:
Select Student_ID, StudentName, TeacherName, TeacherEmail FROM Students INNER JOIN Teachers ON Students.TeacherID = Teachers.TeacherID;
Nadat de query is uitgevoerd, wordt de onderstaande tabel geproduceerd.
Natuurlijke verbinding
Het is een type binnentype dat twee of meer tabellen met elkaar verbindt op basis van dezelfde kolomnaam en waarbij in beide tabellen hetzelfde gegevenstype aanwezig is.
Syntaxis:
Select * from tablename1 Natural JOIN tablename_2;
We hebben twee tabellen: Studenten en de Leraren Tafels. Laten we de SQL-query's schrijven om aan de tabel deel te nemen met behulp van de Natuurlijk aansluiten als volgt:
Select * from Students Natural JOIN Teachers;
Nadat de bovenstaande query is uitgevoerd, wordt de volgende tabel geproduceerd.
LINKS AANMELDEN
De LINKS AANMELDEN wordt gebruikt om alle records uit de linkertabel (tabel1) en de overeenkomende rijen of kolommen uit de rechtertabel (tabel2) op te halen. Als beide tabellen geen overeenkomende rijen of kolommen bevatten, wordt NULL geretourneerd.
Syntaxis:
Select column_1, column_2, column(s) FROM table_1 LEFT JOIN table_2 ON table_1.column_name = table_2.column_name;
We kunnen de linkerverbinding ook als volgt weergeven via het Venn-diagram:
Opmerking: In sommige databases wordt LEFT JOIN ook wel LEFT OUTER JOIN genoemd.
Tabel 1: Productdetails
Product-ID | Productnaam | Hoeveelheid |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | Mobiel | 38000 |
Pro103 | Koptelefoon | 5000 |
Pro104 | Televisie | 25000 |
Pro105 | iPad | 60000 |
Tabel 2: Klantgegevens
Linux hosten
Klantnaam | Klant adres | KlantLeeftijd | Product-ID |
---|---|---|---|
Martin Guptil | San Francisco, VS | 26 | Pro101 |
Jakobus | Australië | 29 | Pro103 |
Ambati Williamson | Nieuw-Zeeland | 27 | Pro102 |
Jofra Boogschutter | Zuid-Afrika | 24 | Pro105 |
Kate Wiley | Australië | twintig | Pro103 |
We hebben twee tabellen: Productdetails en de Klant details Tafels. Laten we de SQL-query's schrijven om aan de tabel deel te nemen met behulp van de LINKS AANMELDEN als volgt:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Nadat de query is uitgevoerd, wordt de volgende tabel gegenereerd.
RIGHT JOIN of RIGHT Outer JOIN:
De RECHTS MOETEN wordt gebruikt om alle records uit de rechtertabel (tabel2) en de overeenkomende rijen of kolommen uit de linkertabel (tabel1) op te halen. Als beide tabellen geen overeenkomende rijen of kolommen bevatten, wordt NULL geretourneerd.
Syntaxis:
Select column_1, column_2, column(s) FROM table_1 RIGHT JOIN table_2 ON table_1.column_name = table_2.column_name;
We kunnen de juiste join ook als volgt weergeven via het Venn-diagram:
Opmerking: In sommige databases wordt de RIGHT JOIN ook wel de RIGHT OUTER JOIN genoemd.
Tabel 1: Productdetails
ID kaart | Productnaam | Hoeveelheid |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | Mobiel | 38000 |
Pro103 | Koptelefoon | 5000 |
Pro104 | Televisie | 25000 |
Pro105 | iPad | 60000 |
Tabel 2: Klantgegevens
Klantnaam | Klant adres | KlantLeeftijd | Product-ID |
---|---|---|---|
Martin Guptil | San Francisco, VS | 26 | Pro101 |
Jakobus | Australië | 29 | Pro103 |
Ambati Williamson | Nieuw-Zeeland | 27 | Pro102 |
Jofra Boogschutter | Zuid-Afrika | 24 | Pro105 |
Voorteken | Engeland | 29 | Pro107 |
Morgan | Engeland | twintig | Pro108 |
We hebben twee tabellen: Productdetails en de Klant details Tafels. Laten we de SQL-query's schrijven om aan de tabel deel te nemen met behulp van de RECHTS MOETEN als volgt:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Nadat de query is uitgevoerd, wordt de onderstaande tabel geproduceerd.
FULL JOIN of FULL Outer JOIN:
Het is een combinatie van resultaten van beide LINKS AANMELDEN En RECHTS MOETEN . De samengevoegde tabellen retourneren alle records van beide tabellen en als er geen overeenkomsten in de tabel worden gevonden, wordt NULL geplaatst. Het wordt ook wel een VOLLEDIGE BUITENKOM .
Syntaxis:
Select column_1, column_2, column(s) FROM table_1 FULL JOIN table_2 ON table_1.column_name = table_2.column_name;
Of, VOLLEDIGE BUITENKOM
Select column_1, column_2, column(s) FROM table_1 FULL OUTER JOIN table_2 ON table_1.column_name = table_2.column_name;
We kunnen de volledige buitenste verbinding ook als volgt weergeven via het Venn-diagram:
Tabel 1: Productdetails
ID kaart | Productnaam | Hoeveelheid |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | Mobiel | 38000 |
Pro103 | Koptelefoon | 5000 |
Pro104 | Televisie | 25000 |
Pro105 | iPad | 60000 |
Tabel 2: Klantgegevens
Klantnaam | Klant adres | KlantLeeftijd | Product-ID |
---|---|---|---|
Martin Guptil | San Francisco, VS | 26 | Pro101 |
Jakobus | Australië | 29 | Pro103 |
Ambati Williamson | Nieuw-Zeeland | 27 | Pro102 |
Jofra Boogschutter | Zuid-Afrika | 24 | Pro105 |
Voorteken | Engeland | 29 | Pro107 |
Morgan | Engeland | twintig | Pro108 |
We hebben twee tabellen: Productdetails en de Klant details Tafels. Laten we de SQL-query's schrijven om aan de tabel deel te nemen met behulp van de VOL DOE MEE als volgt:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details FULL JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Nadat de query is uitgevoerd, wordt de onderstaande tabel geproduceerd.
unie versus unie allemaal
Opmerking: MySQL ondersteunt geen FULL JOIN-concepten, dus we kunnen de UNION ALL-clausule gebruiken om beide tabellen te combineren.
Hier is de syntaxis voor UNIE ALLEMAAL Clausule om de tabellen te combineren.
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
KRUIS JOIN
Het is ook bekend als CARTESIAANSE MOEITE , dat het cartesiaanse product van twee of meer samengevoegde tabellen retourneert. De KRUIS JOIN produceert een tabel die elke rij uit de eerste tabel samenvoegt met elke tweede tabelrij. Het is niet verplicht om voorwaarden op te nemen in CROSS JOIN.
Syntaxis:
Select * from table_1 cross join table_2;
Of,
Select column1, column2, column3 FROM table_1, table_2;
Tabel 1: Productdetails
ID kaart | Productnaam | Hoeveelheid |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | Mobiel | 38000 |
Pro103 | Koptelefoon | 5000 |
Pro104 | Televisie | 25000 |
Pro105 | iPad | 60000 |
Tabel 2: Klantgegevens
Klantnaam | Klant adres | KlantLeeftijd | Product-ID |
---|---|---|---|
Martin Guptil | San Francisco, VS | 26 | Pro101 |
Jakobus | Australië | 29 | Pro103 |
Ambati Williamson | Nieuw-Zeeland | 27 | Pro102 |
Jofra Boogschutter | Zuid-Afrika | 24 | Pro105 |
Voorteken | Engeland | 29 | Pro107 |
Morgan | Engeland | twintig | Pro108 |
We hebben twee tabellen: Productdetails en de Klant details Tafels. Laten we de SQL-query's schrijven om aan de tabel deel te nemen met behulp van de VOL DOE MEE als volgt:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details, Customer_Details;
Nadat de query is uitgevoerd, wordt de onderstaande tabel geproduceerd.
ZELF DOE MEE
Het is een SELF JOIN die wordt gebruikt om een tabel te maken door zichzelf samen te voegen, aangezien er twee tabellen waren. Het maakt tijdelijke naamgeving van ten minste één tabel in een SQL-instructie.
Syntaxis:
Select column1, column2, column(s) FROM table_1 Tbl1, table_2 Tbl2 WHERE condition;
tafel 1 En Tbl2 zijn twee verschillende tabelaliassen voor dezelfde tabel.
Tabel 1: Productdetails
ID kaart | Productnaam | Hoeveelheid |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | Mobiel | 38000 |
Pro103 | Koptelefoon | 5000 |
Pro104 | Televisie | 25000 |
Pro105 | iPad | 60000 |
Laten we de SQL-query's schrijven om aan de tabel deel te nemen met behulp van de ZELF DOE MEE als volgt:
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;>