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
|
|