Join (SQL)

Fra Wikipedia, den frie encyklopedi

JOIN (som på norsk i matematisk forstand kan oversettes til skjøt[1]) er en SQL-spesifikasjon som benyttes sammen med SELECT for å returnere en resultatmengde av opptegnelser fra flere tabeller, altså en «sammenføyning». Den brukes når man sammen med rader fra hovedtabellen skal kombinere rader fra andre.

JOIN-spesifikasjoner[rediger | rediger kilde]

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

Ulike rotasjoner av to tabeller:

Visualisering av de ulike JOINs i SQL

Figurer[rediger | rediger kilde]

Operasjon Figur Kommentar
Innerskjøt Inner join

Symmetrisk

Venstreskjøt Left join (også kalt left outer join)

Rekkefølge-sensistiv

Høyreskjøt Right join (også kalt right outer join)

Rekkefølge-sensistiv

I praksis svært lite brukt, da den tilsvarer venstreskjøt dersom argumentene gis i omvendt rekkefølge

Fullskjøt Full join (også kalt full outer join)

Symmetrisk

Grunnleggende syntaks[rediger | rediger kilde]

En JOIN-spørring ser slik ut:

SELECT tabell1.kolonne2, tabell2.*
FROM tabell1
JOIN tabell2 ON tabell1.kolonne1 = tabell2.kolonne

Eksempler[rediger | rediger kilde]

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

Referanser[rediger | rediger kilde]

  1. ^ «Matematisk ordliste». matematikkradet.no. Besøkt 14. desember 2021.