Join 2 Tabeller
Vi har fået opmærksomheden fra en virksomhed, der ejer en lille onlinebutik. De har 2 tabeller, som er relateret til hinanden. Den første tabel indeholder information om de produkter, der sælges i onlinebutikken.
Sådan ser product
-tabellen ud:
Den anden tabel indeholder produktkategorier på hjemmesiden samt en kort beskrivelse af hver kategori.
Sådan ser category
-tabellen ud:
Vores første opgave er at forbinde disse to tabeller for at finde ud af, hvor mange produkter der er i hver kategori. Vi bruger en JOIN
-sætning til dette formål.
Før vi går i gang med opgaven, skal vi forstå, hvad en JOIN
-sætning er, og hvordan den fungerer.
For at sammenkæde to tabeller skal de dele en fælles kolonne. Lad os se, hvordan JOIN
fungerer ved at bruge tabellerne employees
og department
. Deres fælles kolonne er employees.department
og departments.name
.
Bemærk
Når du skriver kolonner fra disse tabeller, start med tabelnavnet, tilføj et punktum, og derefter kolonnenavnet. Dette hjælper med at holde koden overskuelig, især når tabeller har kolonner med samme navn. Det fortæller SQL præcis, hvilken tabel og kolonne du mener.
Her er opgaven med at hente den samlede løn for medarbejdere i hver afdelingstype (tech
/non-tech
).
Forespørgslen til at udføre denne opgave vil se sådan ud:
1234SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
Lad os gennemgå, hvordan vi brugte JOIN
i vores forespørgsel:
- I
SELECT
-delen angiver vi de kolonner, vi ønsker fra begge tabeller, og sørger for at inkludere tabelnavnet for tydelighed; - I
JOIN
-delen angiver vi tabellen, der skal sammenkædes, og fælles kolonne, der forbinder dem. Her er detemployees.department
ogdepartment.name
; - Derefter grupperer vi dataene efter
type
for at beregne den samlede løn ved hjælp af funktionenSUM()
.
Hvis dette virker komplekst, er her en simpel syntaks for at bruge JOIN
:
SELECT table1.column, table2.column
FROM table1
JOIN table2 ON table1.common_column = table2.common_column
Bemærk
I modsætning til
UNION
-klausulen gørJOIN
-sætningen det muligt at kombinere hele tabeller, ikke kun de kolonner, de har til fælles. Desuden er der medJOIN
ikke behov for underforespørgsler som medUNION
.
Swipe to start coding
Du skal sammenkæde de to tabeller: category
og product
. De fælles kolonner for disse to tabeller er product.category_id
og category.id
.
Din opgave er at finde det samlede antal produkter i hver kategori. For at gøre dette skal du beregne summen af kolonnen product.amount
.
Brug aliaset total_amount
for denne kolonne.
I slutningen af din forespørgsel skal du sortere resultatet efter kolonnen total_amount
i stigende rækkefølge.
I svaret skal du have 2 kolonner: category.name
og total.amount
.
Korte instruktioner
- Hent kolonnen
category.name
og summen af kolonnenproduct.amount
fra tabellenproduct
. - Tildel aliaset
total_amount
til den anden kolonne. - Sammenkæd tabellen
category
ved hjælp af enJOIN
-sætning. - Match tabellerne på den fælles kolonne
product.category_id = category.id
. - Gruppér resultaterne efter
category.name
. - Sortér resultaterne efter
total_amount
.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
What are the different types of JOINs in SQL?
Can you explain how to join the product and category tables using SQL?
How do I count the number of products in each category using a JOIN?
Awesome!
Completion rate improved to 4
Join 2 Tabeller
Stryg for at vise menuen
Vi har fået opmærksomheden fra en virksomhed, der ejer en lille onlinebutik. De har 2 tabeller, som er relateret til hinanden. Den første tabel indeholder information om de produkter, der sælges i onlinebutikken.
Sådan ser product
-tabellen ud:
Den anden tabel indeholder produktkategorier på hjemmesiden samt en kort beskrivelse af hver kategori.
Sådan ser category
-tabellen ud:
Vores første opgave er at forbinde disse to tabeller for at finde ud af, hvor mange produkter der er i hver kategori. Vi bruger en JOIN
-sætning til dette formål.
Før vi går i gang med opgaven, skal vi forstå, hvad en JOIN
-sætning er, og hvordan den fungerer.
For at sammenkæde to tabeller skal de dele en fælles kolonne. Lad os se, hvordan JOIN
fungerer ved at bruge tabellerne employees
og department
. Deres fælles kolonne er employees.department
og departments.name
.
Bemærk
Når du skriver kolonner fra disse tabeller, start med tabelnavnet, tilføj et punktum, og derefter kolonnenavnet. Dette hjælper med at holde koden overskuelig, især når tabeller har kolonner med samme navn. Det fortæller SQL præcis, hvilken tabel og kolonne du mener.
Her er opgaven med at hente den samlede løn for medarbejdere i hver afdelingstype (tech
/non-tech
).
Forespørgslen til at udføre denne opgave vil se sådan ud:
1234SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
Lad os gennemgå, hvordan vi brugte JOIN
i vores forespørgsel:
- I
SELECT
-delen angiver vi de kolonner, vi ønsker fra begge tabeller, og sørger for at inkludere tabelnavnet for tydelighed; - I
JOIN
-delen angiver vi tabellen, der skal sammenkædes, og fælles kolonne, der forbinder dem. Her er detemployees.department
ogdepartment.name
; - Derefter grupperer vi dataene efter
type
for at beregne den samlede løn ved hjælp af funktionenSUM()
.
Hvis dette virker komplekst, er her en simpel syntaks for at bruge JOIN
:
SELECT table1.column, table2.column
FROM table1
JOIN table2 ON table1.common_column = table2.common_column
Bemærk
I modsætning til
UNION
-klausulen gørJOIN
-sætningen det muligt at kombinere hele tabeller, ikke kun de kolonner, de har til fælles. Desuden er der medJOIN
ikke behov for underforespørgsler som medUNION
.
Swipe to start coding
Du skal sammenkæde de to tabeller: category
og product
. De fælles kolonner for disse to tabeller er product.category_id
og category.id
.
Din opgave er at finde det samlede antal produkter i hver kategori. For at gøre dette skal du beregne summen af kolonnen product.amount
.
Brug aliaset total_amount
for denne kolonne.
I slutningen af din forespørgsel skal du sortere resultatet efter kolonnen total_amount
i stigende rækkefølge.
I svaret skal du have 2 kolonner: category.name
og total.amount
.
Korte instruktioner
- Hent kolonnen
category.name
og summen af kolonnenproduct.amount
fra tabellenproduct
. - Tildel aliaset
total_amount
til den anden kolonne. - Sammenkæd tabellen
category
ved hjælp af enJOIN
-sætning. - Match tabellerne på den fælles kolonne
product.category_id = category.id
. - Gruppér resultaterne efter
category.name
. - Sortér resultaterne efter
total_amount
.
Løsning
Tak for dine kommentarer!
Awesome!
Completion rate improved to 4single