Hvordan får jeg data fra flere tabeller?
En SQL JOIN kombinerer poster fra to tabeller.
A JOIN lokaliserer relaterede kolonneværdier i de to tabeller.
En forespørgsel kan indeholde nul, en eller flere JOIN-operationer.
INNER JOIN er det samme som JOIN; nøgleordet INNER er valgfrit.
Fire forskellige typer JOIN
- (INNER) JOIN: Vælg poster der har matchende værdier i begge tabeller.
- FULD (OUTER) JOIN: Vælger alle poster, der matcher enten poster til venstre eller højre tabel.
- LEFT (YDRE) JOIN: Vælg poster fra første (længst til venstre) tabel med matchende højre tabel poster.
- HØJRE (YDRE) JOIN: Vælg poster fra den anden (højre) tabel med matchende venstre tabel poster.
Bemærk: Alle INNER- og OUTER-nøgleord er valgfri.
Detaljer om de forskellige JOINer er tilgængelige på efterfølgende tutorialsider.
SQL JOIN syntaks
Den generelle syntaks er
SELECT column-names FROM table-name1 JOIN table-name2 ON column-name1 = column-name2 WHERE condition
Den generelle syntaks med INNER er:
SELECT column-names FROM table-name1 INNER JOIN table-name2 ON column-name1 = column-name2 WHERE condition
Bemærk: INNER nøgleordet er valgfrit: det er både standard og den mest almindeligt anvendte JOIN-operation.
Id
Firs tnavn
Efternavn
By
Land
Telefon
Id
OrderDate
OrderNumber
CustomerId
TotalAmount
SQL JOIN Eksempler
I dette eksempel kan det have været nyttigt at bruge tabelaliaser til og kunde.
OrderNumber | TotalAmount | FirstName | LastName | City | Country |
---|---|---|---|---|---|
542378 | 440,00 | Paul | Henriot | Reims | Frankrig |
542379 | 1863.40 | Karin | Josephs | Münster | Tyskland |
542380 | 1813.00 | Mario | Pontes | Rio de Janeiro | Brasilien |
542381 | 670,80 | Mary | Saveley | Lyon | Frankrig |
542382 | 3730,00 | Pascale | Cartrain | Charleroi | Belgien |
542383 | 1444,80 | Mario | Pontes | Rio de Janeiro | Brasilien |
542384 | 625,20 | Yang | Wang | Bern | Schweiz |
Id
Produktnavn
SupplierId
UnitPrice
Package
IsDiscontinued
Id
OrderId
ProductId
UnitPrice
Mængde
Id
OrderDate
OrderNumber
CustomerId
TotalAmount
mængder og priser
O, I og P er tabelaliaser . Dato er et kolonnealias.