Fra Wikipedia, den frie encyklopedi
Denne artikkelen mangler
kildehenvisninger , og opplysningene i den kan dermed være vanskelige å
verifisere . Kildeløst materiale kan bli
fjernet . Helt uten kilder.
(10. okt. 2015 )
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.
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
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
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
Tema innen SQL Implementasjoner