SQL JOIN

Hoe krijg ik gegevens uit meerdere tabellen?

Een SQL JOIN combineert records uit twee tabellen.
Een JOIN lokaliseert gerelateerde kolomwaarden in de twee tabellen.
Een query kan nul, één of meerdere JOIN-bewerkingen bevatten.
INNER JOIN is hetzelfde als JOIN; het trefwoord INNER is optioneel.

Vier verschillende soorten JOINs

  1. (INNER) JOIN: Selecteer records die overeenkomende waarden hebben in beide tabellen.
  2. FULL (BUITEN) JOIN: selecteert alle records die overeenkomen met de linker- of rechtertabelrecords.
  3. LEFT (OUTER) JOIN: Selecteer records uit de eerste (meest linkse) tabel met overeenkomende rechter tabelrecords.
  4. RIGHT (OUTER) JOIN: selecteer records uit de tweede (meest rechtse) tabel met overeenkomende linker tabelrecords.

Opmerking: alle BINNEN- en BUITEN-trefwoorden zijn optioneel.
Details over de verschillende JOINs zijn beschikbaar in volgende tutorialpaginas.

De SQL JOIN-syntaxis

De algemene syntaxis is

SELECT column-names FROM table-name1 JOIN table-name2 ON column-name1 = column-name2 WHERE condition

De algemene syntaxis met INNER is:

SELECT column-names FROM table-name1 INNER JOIN table-name2 ON column-name1 = column-name2 WHERE condition

Opmerking: het INNER-trefwoord is optioneel: het is zowel de standaard als de meest gebruikte JOIN-bewerking.

CUSTOMER

Id

Firs tNaam

Achternaam

Stad

Land

Telefoon

ORDER

Id

OrderDate

OrderNumber

CustomerId

TotalAmount

SQL JOIN-voorbeelden

Probleem: maak een lijst van alle bestellingen met klantinformatie

In dit voorbeeld was het gebruik van tabelaliassen voor en Klant mogelijk nuttig.

Resultaat: 830 records.
OrderNumber TotalAmount Voornaam Achternaam Plaats Land
542378 440,00 Paul Henriot Reims Frankrijk
542379 1863,40 Karin Josephs Münster Duitsland
542380 1813,00 Mario Pontes Rio de Janeiro Brazilië
542381 670,80 Mary Saveley Lyon Frankrijk
542382 3730,00 Pascale Cartrain Charleroi België
542383 1444,80 Mario Pontes Rio de Janeiro Brazilië
542384 625,20 Yang Wang Bern Zwitserland

PRODUCT

Id

Productnaam

Leverancier-id

Prijs per eenheid

Pakket

Wordt stopgezet

ORDERITEM

Id

OrderId

ProductId

Eenheidsprijs

Aantal

ORDER

Id

OrderDate

OrderNumber

CustomerId

TotalAmount

Probleem: lijst alle bestellingen
met productnamen,
hoeveelheden en prijzen
Deze query voert twee JOIN-bewerkingen uit met 3 tabellen.
De O, I en P zijn tabel AliassenDatum is een kolomalias.
Resultaat: 2155 records

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *