JOIN er en SQL-spesifikasjon som benyttes sammen med SELECT for å returnere et resultatsett av opptegnelser fra flere tabeller. Den brukes når man sammen med rader fra hovedtabellen skal kombinere rader fra andre.
JOIN-spesifikasjoner [rediger]
INNER JOIN eller bare JOIN – returnerer kun kombinerte rader.
LEFT JOIN – returnerer alle radene fra hovedtabellen og kombinerer dem med rader fra den andre der det er mulig.
RIGHT JOIN – returnerer alle radene fra den andre tabellen og kombinerer dem med rader fra hovedtabellen der det er mulig.
Grunnleggende syntaks [rediger]
En JOIN-spørring ser slik ut:
SELECT tabell1.kolonne2, tabell2.*
FROM tabell1
JOIN tabell2 ON tabell1.kolonne1 = tabell2.kolonne
Tabellen personer ser slik ut:
| navn |
bosted |
| Ola Nordmann |
Oslo |
| Navn Navnesen |
Bergen |
| Jens Jensen |
Tromsø |
| Kari Nordmann |
Oslo |
Tabellen byer ser slik ut:
| bynavn |
fylke |
| Oslo |
Oslo |
| Bergen |
Hordaland |
| Trondheim |
Sør-Trøndelag |
| Spørring |
Returnerer |
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 |
|