Een beknopte handleiding voor het gebruik van Inner Joins in SQL

Relationele databases zijn een stal van veel bedrijven. Ze zijn gemaakt met een computertaal genaamd Structured Query Language (SQL). Als je werkt met relationele databases, zult u af en toe gegevens onderzoeken of verzamelen die zich in meer dan één tabel van de database bevinden.

Wat is een SQL JOIN-instructie?

Een SQL JOIN-instructie maakt het mogelijk om twee of meer tabellen samen te voegen, meestal op basis van een gerelateerde kolom, zodat de gegevens worden behandeld alsof ze zich in één tabel bevinden. De tabellen zelf worden niet gewijzigd door de join.

SQL JOIN is flexibel en functioneel. Hoewel er verschillende soorten joins zijn, is de inner join een van de gemakkelijkst te begrijpen en te gebruiken. Bekijk de volgende SQL-instructies die illustreren hoe u resultaten uit drie verschillende tabellen kunt combineren met behulp van een inner join.

Inner Join Voorbeeld

Neem bijvoorbeeld tabellen die stuurprogramma's bevatten in de ene tafel en voertuigmatchups in de tweede. De inner join vindt plaats waar zowel het voertuig als de bestuurder zich in dezelfde stad bevinden. De inner join selecteert alle rijen uit beide tabellen die een overeenkomst tussen locatiekolommen bevatten.

instagram viewer

De onderstaande SQL-instructie combineert gegevens uit de tabellen Bestuurders en Voertuigen in gevallen waarin de bestuurder en het voertuig zich in dezelfde stad bevinden:

KIES achternaam, voornaam, tag
VAN chauffeurs, voertuigen
WAAR chauffeurs.locatie = voertuigen.locatie

Deze query levert de volgende resultaten op:

achternaam voornaam tag

Baker Roland H122JM
Smythe Michael D824HA
Smythe Michael P091YF
Jacobs Abraham J291QR
Jacobs Abraham L990MT

Breid dit voorbeeld nu uit met een derde tabel. Om alleen chauffeurs en voertuigen op te nemen die aanwezig zijn op locaties die in het weekend open zijn, voegt u een derde tabel toe aan de query door de JOIN-instructie als volgt uit te breiden:

SELECT achternaam, voornaam, tag, open_weekends
VAN chauffeurs, voertuigen, locaties
WAAR chauffeurs.locatie = voertuigen.locatie
EN voertuigen.locatie = locaties.locatie
AND locaties.open_weekends = 'Ja'

Deze query levert de volgende resultaten op:

achternaam voornaam tag open_weekends

Baker Roland H122JM ja
Jacobs Abraham J291QR ja
Jacobs Abraham L990MY ja

Deze krachtige uitbreiding op de basis SQL JOIN-instructie combineert gegevens op een complexe manier. Naast het combineren van tabellen met een inner join, combineert deze techniek meerdere tabellen met andere typen joins.

Andere soorten joins

Wanneer de tabellen een overeenkomend record hebben, zijn inner joins de beste keuze, maar soms heeft één tabel geen gerelateerd record voor de gegevens waarop de join is gebouwd, zodat de query mislukt. Deze zaak vraagt ​​om een buitenste join, die resultaten omvat die in één tabel voorkomen, maar geen overeenkomende overeenkomst hebben in de samengevoegde tabel.

Daarnaast kunt u, afhankelijk van de omstandigheden, ervoor kiezen om een ​​ander type join te gebruiken. Deze andere soorten joins zijn:

  • Linker buitenste join (linker join): Bevat elk record uit de linkertabel, zelfs als de rechtertabel geen overeenkomend record heeft.
  • Rechter buitenste join (right join): Retourneert alle relevante informatie uit de rechtertabel, zelfs als de linkertabel geen overeenkomst heeft.
  • Volledige deelname: Selecteert alle records uit twee tabellen, ongeacht of ze een overeenkomende join-voorwaarde hebben.