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
- (INNER) JOIN: Selecteer records die overeenkomende waarden hebben in beide tabellen.
- FULL (BUITEN) JOIN: selecteert alle records die overeenkomen met de linker- of rechtertabelrecords.
- LEFT (OUTER) JOIN: Selecteer records uit de eerste (meest linkse) tabel met overeenkomende rechter tabelrecords.
- 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.
Id
Firs tNaam
Achternaam
Stad
Land
Telefoon
Id
OrderDate
OrderNumber
CustomerId
TotalAmount
SQL JOIN-voorbeelden
In dit voorbeeld was het gebruik van tabelaliassen voor en Klant mogelijk nuttig.
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 |
Id
Productnaam
Leverancier-id
Prijs per eenheid
Pakket
Wordt stopgezet
Id
OrderId
ProductId
Eenheidsprijs
Aantal
Id
OrderDate
OrderNumber
CustomerId
TotalAmount
met productnamen,
hoeveelheden en prijzen
De O, I en P zijn tabel AliassenDatum is een kolomalias.