SQL JOIN (Dansk)

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

  1. (INNER) JOIN: Vælg poster der har matchende værdier i begge tabeller.
  2. FULD (OUTER) JOIN: Vælger alle poster, der matcher enten poster til venstre eller højre tabel.
  3. LEFT (YDRE) JOIN: Vælg poster fra første (længst til venstre) tabel med matchende højre tabel poster.
  4. 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.

KUNDE

Id

Firs tnavn

Efternavn

By

Land

Telefon

ORDER

Id

OrderDate

OrderNumber

CustomerId

TotalAmount

SQL JOIN Eksempler

Problem: Liste over alle ordrer med kundeoplysninger

I dette eksempel kan det have været nyttigt at bruge tabelaliaser til og kunde.

Resultat: 830 poster.
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

PRODUKT

Id

Produktnavn

SupplierId

UnitPrice

Package

IsDiscontinued

BESTILLING

Id

OrderId

ProductId

UnitPrice

Mængde

ORDER

Id

OrderDate

OrderNumber

CustomerId

TotalAmount

Problem: Liste over alle ordrer med produktnavne,
mængder og priser
Denne forespørgsel udfører to JOIN-operationer med 3 tabeller.
O, I og P er tabelaliaser . Dato er et kolonnealias.
Resultat: 2155 poster

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *