JOIN 2 Tabeller
Vi 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å nettstedet, sammen med en kort beskrivelse for hver kategori.
Slik ser category
-tabellen ut:
Vår første oppgave er å slå sammen disse to tabellene for å finne ut hvor mange produkter som er i hver kategori. Vi vil bruke en JOIN
-setning for å oppnå dette.
Før vi dykker inn i oppgaven, la oss forstå hva en JOIN
-setning er og hvordan den fungerer.
For å slå sammen to tabeller, må de dele en felles kolonne. La oss se hvordan JOIN
fungerer ved å bruke employees
og department
tabellene. Deres felles kolonne er employees.department
og departments.name
.
Merk
Når du skriver kolonner fra disse tabellene, start med tabellnavnet, legg til en prikk, og deretter kolonnenavnet. Dette hjelper med å holde koden klar, spesielt når tabeller har kolonner med samme navn. Det forteller SQL nøyaktig hvilken tabell og kolonne du mener.
Her er oppgaven med å hente ut total lønn for ansatte i hver avdelingstype (tech
/non-tech
).
Spørringen for å utføre denne oppgaven vil se slik ut:
1234SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
La oss bryte ned hvordan vi brukte JOIN
i vår spørring:
- I
SELECT
-delen lister vi opp kolonnene vi ønsker fra begge tabellene, og sørger for å inkludere tabellnavnet for klarhet; - I
JOIN
-delen spesifiserer vi tabellen som skal kobles og den felles kolonnen som knytter dem sammen. Her er detemployees.department
ogdepartment.name
; - Vi grupperer deretter dataene etter
type
for å beregne total lønn ved å brukeSUM()
-funksjonen.
Hvis dette virker komplekst, her er en enkel syntaks for å bruke JOIN
:
SELECT table1.column, table2.column
FROM table1
JOIN table2 ON table1.common_column = table2.common_column
Merk
I motsetning til
UNION
-klausulen, larJOIN
-setningen oss kombinere hele tabeller, ikke bare kolonnene de deler. I tillegg, medJOIN
, er det ikke behov for underforespørsler som medUNION
.
Swipe to start coding
Du må slå sammen de to tabellene: category
og product
. De felles kolonnene for disse to tabellene er product.category_id
og category.id
.
Din oppgave er å finne det totale antallet produkter i hver kategori. For å gjøre dette, må du beregne summen av product.amount
-kolonnen.
Bruk aliaset total_amount
for denne kolonnen.
På slutten av spørringen din, sorter resultatet etter total_amount
-kolonnen i stigende rekkefølge.
I svaret ditt, bør du ha 2 kolonner: category.name
og total.amount
.
Korte Instruksjoner
- Hent
category.name
-kolonnen og summen avproduct.amount
-kolonnen fraproduct
-tabellen. - Tildel aliaset
total_amount
til den andre kolonnen. - Slå sammen
category
-tabellen ved å bruke enJOIN
-setning. - Matche tabellene på den felles kolonnen
product.category_id = category.id
. - Grupper resultatene etter
category.name
. - Sorter resultatene etter
total_amount
.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
What are the different types of JOINs in SQL?
Can you explain how to join the product and category tables using SQL?
Why do we need to use table names before column names in JOIN queries?
Awesome!
Completion rate improved to 4
JOIN 2 Tabeller
Sveip for å vise menyen
Vi 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å nettstedet, sammen med en kort beskrivelse for hver kategori.
Slik ser category
-tabellen ut:
Vår første oppgave er å slå sammen disse to tabellene for å finne ut hvor mange produkter som er i hver kategori. Vi vil bruke en JOIN
-setning for å oppnå dette.
Før vi dykker inn i oppgaven, la oss forstå hva en JOIN
-setning er og hvordan den fungerer.
For å slå sammen to tabeller, må de dele en felles kolonne. La oss se hvordan JOIN
fungerer ved å bruke employees
og department
tabellene. Deres felles kolonne er employees.department
og departments.name
.
Merk
Når du skriver kolonner fra disse tabellene, start med tabellnavnet, legg til en prikk, og deretter kolonnenavnet. Dette hjelper med å holde koden klar, spesielt når tabeller har kolonner med samme navn. Det forteller SQL nøyaktig hvilken tabell og kolonne du mener.
Her er oppgaven med å hente ut total lønn for ansatte i hver avdelingstype (tech
/non-tech
).
Spørringen for å utføre denne oppgaven vil se slik ut:
1234SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
La oss bryte ned hvordan vi brukte JOIN
i vår spørring:
- I
SELECT
-delen lister vi opp kolonnene vi ønsker fra begge tabellene, og sørger for å inkludere tabellnavnet for klarhet; - I
JOIN
-delen spesifiserer vi tabellen som skal kobles og den felles kolonnen som knytter dem sammen. Her er detemployees.department
ogdepartment.name
; - Vi grupperer deretter dataene etter
type
for å beregne total lønn ved å brukeSUM()
-funksjonen.
Hvis dette virker komplekst, her er en enkel syntaks for å bruke JOIN
:
SELECT table1.column, table2.column
FROM table1
JOIN table2 ON table1.common_column = table2.common_column
Merk
I motsetning til
UNION
-klausulen, larJOIN
-setningen oss kombinere hele tabeller, ikke bare kolonnene de deler. I tillegg, medJOIN
, er det ikke behov for underforespørsler som medUNION
.
Swipe to start coding
Du må slå sammen de to tabellene: category
og product
. De felles kolonnene for disse to tabellene er product.category_id
og category.id
.
Din oppgave er å finne det totale antallet produkter i hver kategori. For å gjøre dette, må du beregne summen av product.amount
-kolonnen.
Bruk aliaset total_amount
for denne kolonnen.
På slutten av spørringen din, sorter resultatet etter total_amount
-kolonnen i stigende rekkefølge.
I svaret ditt, bør du ha 2 kolonner: category.name
og total.amount
.
Korte Instruksjoner
- Hent
category.name
-kolonnen og summen avproduct.amount
-kolonnen fraproduct
-tabellen. - Tildel aliaset
total_amount
til den andre kolonnen. - Slå sammen
category
-tabellen ved å bruke enJOIN
-setning. - Matche tabellene på den felles kolonnen
product.category_id = category.id
. - Grupper resultatene etter
category.name
. - Sorter resultatene etter
total_amount
.
Løsning
Takk for tilbakemeldingene dine!
Awesome!
Completion rate improved to 4single