Belangrijk verschil: Joins in SQL worden uitgevoerd om de gegevens van twee verschillende tabellen te combineren. Een innerlijke join is een voorwaarde die resulteert in de rijen die voldoen aan de 'where'-clausule in' alle tabellen '; overwegende dat een Outer Join een voorwaarde is die resulteert in die rijen die voldoen aan de 'where'-clausule in' ten minste één van de tabellen '.
Bij het implementeren van de joins worden de tijdelijke tabellen gemaakt, deze zijn gebaseerd op kolommen. Er moeten altijd twee tabellen zijn voor de voorwaarden voor deelname. Deze voorwaarden, voeg vervolgens de respectieve componenten van de ene tabel samen met de andere componenten en zorg voor een geheel nieuwe tabel. Het doel van deze tabellen is om de zinvolle en vereiste gegevens of informatie te extraheren. Afhankelijk van de omstandigheden zijn er twee typen joins, de binnen- en buiten joins.
SQL INNER JOIN-syntaxis:
SELECT column_name (s)
VANAF tabel1
INNER JOIN table2
AAN table1.column_name = table2.column_name;
Het trefwoord INNER JOIN selecteert alle rijen uit beide tabellen zolang er een overeenkomst is tussen de kolommen in beide tabellen.
De inner joins zijn afhankelijk van de selectie van de databaseontwerpen en -kenmerken. Daarom worden deze innerlijke joins gebruikt in de Equi-joins en natuurlijke joins. In Equi Join is er een specifiek type vergelijking dat wordt gebruikt om de twee gegeven tabellen gelijk te maken. Daarom gebruikt deze tabel het gelijk-predikaat. De natuurlijke join is een soort Equi-join.
Syntaxis voor Equi Join is als volgt:
S ELECT *
VANAF tabel 1, tabel 2
WHERE table1.coloumn_name = table2.coloumn_name;
Als de kolommen in een equi-join dezelfde naam hebben, biedt de respectieve SQL-versie een optionele verkorte notatie die kan worden uitgedrukt door het construct USING als:
SELECT *
VAN tabel1 INNERLIJKE JOIN table2 USING (kolomnaam);
Syntaxis voor Natural Join is als volgt:
SELECT *
VAN tabel1 NATURAL JOIN tabel2;
Voor een "outer join" zijn geen overeenkomende voorwaarden voor de records vereist. Deze join-voorwaarde onderhoudt alle andere records, naast de niet-overeenkomende records. Deze join wordt verder verspreid in de linker-, rechter- en volledige outer join-voorwaarden, die worden geïmplementeerd op basis van de gewenste tabelvoorwaarden en -kenmerken.
Links Outer Join
Het trefwoord LEFT JOIN geeft alle rijen uit de linkertabel (tabel 1), met de overeenkomende rijen in de rechtse tabel (tabel 2). Het resulteert in "NULL" aan de rechterkant als er geen overeenkomst is.
De syntaxis voor Left Outer Join volgt:
SELECT column_name (s)
VANAF tabel1
LINKER BUITENKANT JOIN table2
AAN table1.column_name = table2.column_name;
Rechts Outer Join
Het RECHTS JOIN-trefwoord retourneert alle rijen uit de rechtse tabel (tabel 2), met de overeenkomende rijen in de linkerstabel (tabel 1). Het resultaat is NULL aan de linkerkant wanneer er geen overeenkomst is.
De syntaxis voor Right Outer Join volgt:
SELECT column_name (s)
VANAF tabel1
RECHTS BUITENKANT JOIN table2
AAN table1.column_name = table2.column_name;
Volledige Outer Join
Het FULL OUTER JOIN-trefwoord retourneert alle rijen uit de linkertabel (tabel1) en de rechtentabel (tabel2). Het FULL OUTER JOIN-trefwoord combineert zowel het resultaat van LINKS- als RIGHT-joins.
De syntaxis voor Full Outer Join is:
SELECT column_name (s)
VANAF tabel1
FULL OUTER JOIN table2
AAN table1.column_name = table2.column_name;
Vergelijking tussen Inner Join en Outer Join:
Inner Join | Outer Join | |
Basis functie | Inner joins worden in principe gebruikt om overeenkomende rijen tussen twee tabellen te vinden. | Outer join behoudt de rijen van beide tabellen of beide tabellen. |
Het bestaan van gemeenschappelijke variabelen | Hier moet de gemeenschappelijke variabele verplicht in beide tabellen zijn. | Hier is de variabele afhankelijk van alleen de eerste tabel die al dan niet aanwezig kan zijn in de tweede tabel. |
Komt terug | Inner join retourneert alleen rijen waarin een overeenkomst is gebaseerd op het join-predikaat. | In de outer join worden alle rijen geretourneerd, ongeacht of deze gebaseerd zijn op een match of niet zijn gekoppeld, op basis van het join-predikaat. |
Gewend om | Het wordt gebruikt om de records alleen te bekijken wanneer de records aanwezig zijn in beide tabellen. | Het wordt gebruikt om alle records in slechts één tabel te bekijken. |
Van toepassing in | Ze zijn toepasbaar in: Equi-Join en Natural Join | Ze zijn van toepassing als: Links Outer Join Rechts Outer Join Volledige Outer Join |