logo

SQL Left Outer Join versus Left Join

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.

Links meedoen

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.