Wanneer je als tester gegevens in een Database moet controleren gebruiken we daar in de regel SQL voor. Een krachtige SQL clause is de SQL Join.
Het is soms lastig om de werking van een SQL Join te doorgronden. In dit artikel proberen we het toepassen van verschillende SQL Joins uit te leggen aan de hand van Venn-diagrammen en voorbeelden.
Wat is een SQL Join?
Een SQL join clausule is een onderdeel van een SQL-query. Het combineert de gegevens van 2 of meer tabellen uit een database. Een join is een middel voor het combineren van de kolommen van een of meer tabellen met behulp van de gemeenschappelijke waarden van elk.
De volgende SQL Joins worden behandeld:
- INNER JOIN
- LEFT OUTER JOIN
- RIGHT OUTER JOIN
- FULL OUTER JOIN
- LEFT OUTER JOIN with exclusion
- RIGHT OUTER JOIN with exclusion
- FULL OUTER JOIN with exclusion
Onderstaande 2 tabellen worden in de uitleg als voorbeeld gebruikt:
INNER Join
Een INNER Join geeft een rij terug als er tenminste een (1) overeenkomst is in de kolommen in de ON clause
LEFT OUTER Join
Een LEFT OUTER Join geeft altijd alle rijen terug van de linker tabel (TabelA). Als er vervolgens ook overeenkomsten zijn met de rechter tabel (TabelB) dan worden deze rijen ook weergegeven. Als er geen overeenkomst is, zal de ontbrekende kant null bevatten.
RIGHT OUTER Join
Een RIGHT OUTER Join geeft altijd alle rijen terug van de rechter tabel (TabelB). Als er vervolgens ook overeenkomsten zijn met de linkertabel (TabelA) dan worden deze ook weergegeven. Als er geen overeenkomst is, zal de ontbrekende kant null bevatten.
FULL OUTER Join
Een FULL OUTER Join geeft altijd alle rijen terug van de linker tabel (TabelA) en de rechter tabel (TabelB), met bijpassende rijen van beide kanten. Als er geen overeenkomst is, zal de ontbrekende kant null bevatten.
LEFT OUTER Join with exclusion
Een LEFT OUTER Join met uitsluiting geeft alle rijen terug van de linker tabel (TabelA) en die niet voorkomen in de rechter tabel (TabelB). De uitsluiting gebeurt met een where clause.
RIGHT OUTER Join with exclusion
Een RIGHT OUTER Join geeft alle rijen terug van de rechter tabel (TabelB) en die niet voorkomen in de linker tabel (TabelA). De uitsluiting gebeurt met een where clause.
FULL OUTER Join with exclusion
Geeft alleen de unieke rijen terug van de linker tabel (TabelA) en de rechter tabel (TabelB). De uitsluiting gebeurt met een where clause.
A