logo

Soorten SQL JOIN

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:

  1. Innerlijke verbinding / Eenvoudige verbinding
  2. Linker buitenste verbinding / Linker verbinding
  3. Rechter buitenste verbinding / Rechter verbinding
  4. Volledige buitenste join
  5. Kruis samenvoegen
  6. 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:

Soorten SQL JOIN

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.

Soorten SQL JOIN

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.

Soorten SQL JOIN

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:

Soorten SQL JOIN

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.

Soorten SQL 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:

Soorten SQL JOIN

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.

Soorten SQL JOIN

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:

Soorten SQL JOIN

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
Soorten SQL JOIN

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 

Soorten SQL JOIN

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.

Soorten SQL JOIN

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