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.
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.
En JOIN
-forespørgsel ser således ud:
SELECT tabell1.kolonne2, tabell2.*
FROM tabell1
JOIN tabell2 ON tabell1.kolonne1 = tabell2.kolonne
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
|
|