Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Join 2 Tabeller | Sammenføye Tabeller
Videregående SQL
Seksjon 3. Kapittel 1
single

single

Join 2 Tabeller

Sveip for å vise menyen

Du har fått oppmerksomheten til et selskap som eier en liten nettbutikk. De har 2 tabeller som er relatert til hverandre. Den første tabellen inneholder informasjon om produktene som selges i nettbutikken.

Slik ser product-tabellen ut:

Den andre tabellen inneholder produktkategorier på nettsiden, sammen med en kort beskrivelse for hver kategori.

Slik ser category-tabellen ut:

Din første oppgave er å slå sammen disse to tabellene for å finne ut hvor mange produkter som finnes i hver kategori. Du skal bruke en JOIN-setning for å oppnå dette.

Før vi går videre til oppgaven, la oss forstå hva en JOIN-setning er og hvordan den fungerer.

Note
Definisjon

JOIN i SQL er en operasjon som kombinerer rader fra to eller flere tabeller basert på en relatert kolonne mellom dem. JOIN gjør det mulig å hente data fra flere tabeller i én spørring, noe som forenkler analyse og behandling av relaterte data.

For å koble sammen to tabeller, må de dele en felles kolonne. For tabellene er denne felles koblingen product.category_id og category.id.

Note
Merk

Når du skriver kolonner fra disse tabellene, start med tabellnavnet, legg til en punktum, og deretter kolonnenavnet. Dette bidrar til å holde koden tydelig, spesielt når tabellene har kolonner med samme navn. Det forteller SQL nøyaktig hvilken tabell og kolonne du mener.

Slik fungerer JOIN i praksis. Tenk deg at vi ønsker å hente ut gjennomsnittspris på produkter for hvert kategorinavn.

Spørringen for å oppnå dette ser slik ut:

1234
SELECT category.name, AVG(product.price) AS average_price FROM product JOIN category ON product.category_id = category.id GROUP BY category.name

Her er en oversikt over hvordan vi brukte JOIN i spørringen vår:

  1. I SELECT-delen lister vi opp kolonnene vi ønsker fra begge tabellene, og inkluderer tabellnavnet for tydelighet;
  2. I JOIN-delen spesifiserer vi tabellen som skal kobles (category) og felles kolonner som knytter dem sammen (product.category_id = category.id);
  3. Deretter grupperer vi dataene etter category.name for å beregne gjennomsnittsprisen ved hjelp av AVG()-funksjonen.

Hvis dette virker komplisert, her er en enkel syntaks for å bruke JOIN:

SELECT table1.column, table2.column
FROM table1
JOIN table2 ON table1.common_column = table2.common_column
Note
Merk

I motsetning til UNION-setningen lar JOIN-setningen deg kombinere hele tabeller, ikke bare kolonnene de har til felles. Merk at UNION ikke nødvendigvis krever underforespørsler — underforespørsler er kun nødvendig hvis du ønsker å filtrere eller gruppere det kombinerte resultatsettet. I mange tilfeller kan du bruke UNION direkte mellom to SELECT-setninger uten underforespørsler.

Oppgave

Sveip for å begynne å kode

Du må slå sammen de to tabellene: category og product. De felles kolonnene for disse to tabellene er product.category_id og category.id.

Oppgaven din er å finne det totale antallet produkter i hver kategori. For å gjøre dette må du beregne summen av kolonnen product.amount.

Bruk aliaset total_amount for denne kolonnen. På slutten av spørringen skal du sortere resultatet etter kolonnen total_amount i stigende rekkefølge.

I svaret skal du ha 2 kolonner: category.name og total.amount.

Korte instruksjoner

  • Hent kolonnen category.name og summen av kolonnen product.amount fra tabellen product.
  • Gi aliaset total_amount til den andre kolonnen.
  • Slå sammen tabellen category ved å bruke en JOIN-setning.
  • Koble tabellene på den felles kolonnen product.category_id = category.id.
  • Grupper resultatene etter category.name.
  • Sorter resultatene etter total_amount.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 1
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

some-alt