Hvordan får jeg data fra flere tabeller?
En SQL JOIN kombinerer poster fra to tabeller.
A JOIN lokaliserer relaterte kolonneverdier i de to tabellene.
Et spørsmål kan inneholde null, en eller flere JOIN-operasjoner.
INNER JOIN er det samme som JOIN; nøkkelordet INNER er valgfritt.
Fire forskjellige typer JOIN
- (INNER) JOIN: Velg poster som har samsvarende verdier i begge tabellene.
- FULL (YTRE) JOIN: Velger alle poster som samsvarer med enten venstre eller høyre tabellposter.
- LEFT (YTRE) JOIN: Velg poster fra første (lengst til venstre) tabell med samsvarende høyre tabellposter.
- HØYRE (YTRE) BLI MED: Velg poster fra den andre (høyre) tabellen med samsvarende venstre tabellposter.
Merk: Alle INNRE og YTRE nøkkelord er valgfrie.
Detaljer om de forskjellige JOIN-ene er tilgjengelige på påfølgende opplæringssider.
SQL BLI MED syntaks
Den generelle syntaksen er
SELECT column-names FROM table-name1 JOIN table-name2 ON column-name1 = column-name2 WHERE condition
Den generelle syntaksen med INNER er:
SELECT column-names FROM table-name1 INNER JOIN table-name2 ON column-name1 = column-name2 WHERE condition
Merk: INNER-nøkkelordet er valgfritt: det er standard så vel som den mest brukte JOIN-operasjonen.
Id
Firs tName
Etternavn
By
Land
Telefon
Id
OrderDate
OrderNumber
CustomerId
TotalAmount
SQL JOIN Eksempler
I dette eksemplet kan det være nyttig å bruke tabellaliaser for og kunde.
OrderNumber | TotalAmount | FirstName | LastName | City | Country |
---|---|---|---|---|---|
542378 | 440,00 | Paul | Henriot | Reims | Frankrike |
542379 | 1863.40 | Karin | Josephs | Münster | Tyskland |
542380 | 1813.00 | Mario | Pontes | Rio de Janeiro | Brasil |
542381 | 670,80 | Mary | Saveley | Lyon | Frankrike |
542382 | 3730,00 | Pascale | Cartrain | Charleroi | Belgia |
542383 | 1444,80 | Mario | Pontes | Rio de Janeiro | Brasil |
542384 | 625,20 | Yang | Wang | Bern | Sveits |
Id
Produktnavn
SupplierId
UnitPrice
Package
IsDontontinued
Id
OrderId
ProductId
UnitPrice
Mengde
Id
OrderDate
OrderNumber
CustomerId
TotalAmount
mengder og priser
O, I og P er tabellaliaser . Dato er et kolonnealias.