JOIN er en SQL-specifikation som benyttes sammen med SELECT for at returner et resultat af optegnelser fra flere tabeller. Den bruges når data fra hovedtabellen skal kombineres med data fra andre tabeller.
JOIN-specifikationer
INNER JOIN eller bare JOIN – returner kun kombineret data.
LEFT JOIN – returnerer alle data fra hovedtabellen og kombinerer dem med data fra den anden der det er mulig.
RIGHT JOIN – returnerer alle data fra den anden tabellen og kombinerer dem med data fra hovedtabellen der det er mulig.
Grundlæggende syntaks
En JOIN-forespørgsel ser således ud:
SELECT tabell1.kolonne2, tabell2.*
FROM tabell1
JOIN tabell2 ON tabell1.kolonne1 = tabell2.kolonne
Eksempler
Tabellen personer ser således ud:
| navn
|
bosted
|
| Ola Nordmann
|
Oslo
|
| Navn Navnesen
|
Bergen
|
| Jens Jensen
|
Tromsø
|
| Kari Nordmann
|
Oslo
|
Tabellen byer ser således ud:
| bynavn
|
fylke
|
| Oslo
|
Oslo
|
| Bergen
|
Hordaland
|
| Trondheim
|
Sør-Trøndelag
|
| Søgning
|
Resultat
|
SELECT *
FROM personer
INNER JOIN byer ON personer.bosted = byer.bynavn
|
| navn
|
bosted
|
bynavn
|
fylke
|
| Ola Nordmann
|
Oslo
|
Oslo
|
Oslo
|
| Navn Navnesen
|
Bergen
|
Bergen
|
Hordaland
|
| Kari Nordmann
|
Oslo
|
Oslo
|
Oslo
|
|
SELECT *
FROM personer
LEFT JOIN byer ON personer.bosted = byer.bynavn
|
| navn
|
bosted
|
bynavn
|
fylke
|
| Ola Nordmann
|
Oslo
|
Oslo
|
Oslo
|
| Navn Navnesen
|
Bergen
|
Bergen
|
Hordaland
|
| Jens Jensen
|
Tromsø
|
NULL
|
| Kari Nordmann
|
Oslo
|
Oslo
|
Oslo
|
|
SELECT *
FROM personer
RIGHT JOIN byer ON personer.bosted = byer.bynavn
|
| navn
|
bosted
|
bynavn
|
fylke
|
| Ola Nordmann
|
Oslo
|
Oslo
|
Oslo
|
| Kari Nordmann
|
Oslo
|
Oslo
|
Oslo
|
| Navn Navnesen
|
Bergen
|
Bergen
|
Hordaland
|
| NULL
|
Trondheim
|
Sør-Trøndelag
|
|