In SQL worden zowel LEFT JOIN als LEFT OUTER JOIN gebruikt om gegevens uit twee of meer tabellen te combineren op basis van een gerelateerde kolom, maar dit is in wezen dezelfde bewerking en er is geen praktisch verschil tussen beide. Het trefwoord OUTER is optioneel in de meeste databasesystemen, inclusief populaire systemen zoals MySQL, PostgreSQL en SQL Server.

Left Join of Left Outer Join
Links meedoen
A SQL bewerking die twee tabellen combineert, waarbij alle rijen uit de linkertabel en overeenkomende rijen uit de rechtertabel worden weergegeven. Als er geen overeenkomst is in de rechtertabel, wordt deze weergegeven NUL waarden.
Syntaxis
SELECTEER * UIT Tabel1
LINKS JOIN Tabel2 AAN Tabel1.columnName = Tabel2.columnName;
Linker buitenste verbinding
Nog een SQL-bewerking die conceptueel identiek is aan LEFT JOIN. Het combineert ook tabellen, waarbij alle rijen uit de linkertabel en overeenkomende rijen uit de rechtertabel worden weergegeven. Als er geen overeenkomst in de rechtertabel is, worden NULL-waarden weergegeven.
Syntaxis
SELECTEER * UIT Tabel1
LINKS BUITEN JOIN Tabel2 AAN Tabel1.columnName = Tabel2.columnName;
LEFT JOIN en LEFT OUTER JOIN zijn in wezen hetzelfde in SQL. Ze combineren allebei gegevens uit twee tabellen, waarbij alle rijen uit de linkertabel en overeenkomende rijen uit de rechtertabel worden weergegeven. Als er geen overeenkomst in de rechtertabel staat, worden NULL-waarden weergegeven. Het enige verschil is de terminologie: LEFT JOIN wordt in sommige databases gebruikt, zoals MySQL , terwijl LEFT OUTER JOIN wordt gebruikt in andere, zoals SQL Server. Op een diepere manier wordt System.out.print() gebruikt in Java, terwijl print tegelijkertijd wordt gebruikt in Python, maar beide reflecteren dezelfde uitvoer. Het is dus gewoon een kwestie van welke term uw databasesysteem verkiest, maar de uitkomst is identiek.
Voordat we in de voorbeelden duiken, gaan we eerst de gegevens creëren die nodig zijn om de Left outside join en left join uit te voeren.
Stap 1: Maak een database
create database geeksforgeeks; use geeksforgeeks;>
Stap 2: Maak een tabel met de naam athelete
create table atheletes(Id int, Name varchar(20), AtheleteNO int, primary key(Id) );>
Stap 3: Voeg waarden in de tabelatleet in
INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (1, 'abisheik', 27); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (2, 'Niyas', 27); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (3, 'Joseph', 29); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (4, 'Juan', 24);>
Stap 4: Maak een tabel met de naam Punten
CREATE TABLE Points(ID INT, Score INT,AtheleteID INT, PRIMARY KEY (ID) );>
Stap 5: Voeg waarden in de tabel Punten in
INSERT INTO Points (ID, Score, AtheleteID) VALUES (1, 270, 1); INSERT INTO Points (ID, Score, AtheleteID) VALUES (2, 297, 2); INSERT INTO Points (ID, Score, AtheleteID) VALUES (3, 210, 3); INSERT INTO Points (ID, Score, AtheleteID) VALUES (4, 180, 4);>
Nu hebben we met succes de tabel atleet en punten voor de join-bewerking gemaakt.
Voorbeeld:
Door gebruik te maken van de Left Outer Join wordt de query uitgevoerd.
Vraag
SELECT * FROM atheletes LEFT OUTER JOIN Points ON atheletes.ID = Points.AtheleteID;>
Uitvoer
ID kaart | Naam | Atleet NR | ID kaart | Scoren | AtleetID |
---|---|---|---|---|---|
1 | Abisheik | 27 | 1 | 270 | 1 |
2 | Niya's | 27 | 2 | 297 | 2 |
3 | Jozef | 29 | 3 | 210 | 3 |
4 | Juan tekenreeks vergelijken | 24 | 4 | 180 | 4 |
Voorbeeld:
Door gebruik te maken van de Left Join wordt de query uitgevoerd.
Vraag
SELECT * FROM atheletes LEFT JOIN Points ON atheletes.ID = Points.AtheleteID;>
Uitvoer
ID kaart | Naam | Atleet NR | ID kaart | Scoren | AtleetID |
---|---|---|---|---|---|
1 | Abisheik | 27 | 1 | 270 Java-gebruiksdatum | 1 |
2 | Niya's | 27 | 2 | 297 | 2 |
3 | Jozef | 29 | 3 | 210 | 3 |
4 | Juan | 24 | 4 | 180 | 4 |
Conclusie
In SQL zijn LEFT JOIN en LEFT OUTER JOIN in wezen dezelfde bewerking, waarbij ze alleen qua terminologie verschillen. Beide bewerkingen combineren gegevens uit twee tabellen, waarbij alle rijen uit de linkertabel en overeenkomende rijen uit de rechtertabel worden weergegeven, terwijl NULL-waarden worden weergegeven voor niet-overeenkomende rijen. Ongeacht de term die in uw databasesysteem wordt gebruikt, de uitkomst blijft identiek.
Veelgestelde vragen over Left Join versus Left Outer Join
V.1: Is er een prestatieverschil tussen LEFT JOIN en LEFT OUTER JOIN?
Antwoord:
Nee, er is geen prestatieverschil. Deze termen zijn uitwisselbaar en de database-optimalisatie verwerkt ze op dezelfde manier.
V.2: Kan ik LEFT JOIN of LEFT OUTER JOIN gebruiken met meer dan twee tabellen?
Antwoord:
Ja, u kunt deze join-bewerkingen met meerdere tabellen gebruiken door de syntaxis uit te breiden en de join-voorwaarden voor elke tabel op te geven.
Vraag 3: Ondersteunen alle databasesystemen zowel LEFT JOIN als LEFT OUTER JOIN?
Antwoord:
De meest gebruikte databasesystemen, waaronder MySQL, PostgreSQL en SQL Server, ondersteunen zowel LEFT JOIN als LEFT OUTER JOIN. Het is echter essentieel om uw specifieke databasedocumentatie te controleren op compatibiliteit.
V.4: Wat gebeurt er als ik LEFT JOIN of LEFT OUTER JOIN gebruik zonder een join-voorwaarde op te geven?
Antwoord:
Het gebruik van deze join-bewerkingen zonder een join-voorwaarde zal resulteren in een Cartesiaans product, waarbij elke rij uit de linkertabel wordt gecombineerd met elke rij uit de rechtertabel, wat mogelijk kan leiden tot een grote en inefficiënte resultatenset.
Vraag 5: Zijn er andere typen SQL-joins?
Antwoord:
Ja, SQL ondersteunt verschillende soorten joins, waaronder INNER JOIN, RIGHT JOIN, FULL OUTER JOIN en CROSS JOIN, die elk verschillende doeleinden dienen bij het combineren van gegevens uit meerdere tabellen.