JOIN (som på norsk oversettes til skjøt) 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 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:
Figurer 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 En JOIN-spørring ser slik ut: SELECT tabell1.kolonne2, tabell2.* FROM tabell1 JOIN tabell2 ON tabell1.kolonne1 = tabell2.kolonne
Eksempler 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 ReturnererSELECT * 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 OsloSELECT * 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 OsloSELECT * 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
Kategori:SQL