JOIN 2 Tabeller
Vi har fået opmærksomheden fra en virksomhed, der ejer en lille online butik. De har 2 tabeller, der er relateret til hinanden. Den første tabel indeholder oplysninger om de produkter, der sælges i onlinebutikken.
Her er, hvordan product tabellen ser ud:
Den anden tabel indeholder produktkategorier på hjemmesiden, sammen med en kort beskrivelse for hver kategori.
Her er, hvordan category tabellen ser 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 vil bruge en JOIN erklæring for at opnå dette.
Før vi dykker ned i opgaven, lad os forstå, hvad en JOIN erklæring 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 hjælp af employees og department tabellerne. Deres fælles kolonne er employees.department og departments.name.
Bemærk
Når du skriver kolonner fra disse tabeller, skal du starte med tabellens navn, tilføje en prik, og derefter kolonnens navn. Dette hjælper med at holde koden klar, 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 for 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 bryde ned, hvordan vi brugte JOIN i vores forespørgsel:
- I
SELECT-delen lister vi de kolonner, vi ønsker fra begge tabeller, og sørger for at inkludere tabellens navn for klarhed; - I
JOIN-delen specificerer vi tabellen at forbinde og den fælles kolonne, der forbinder dem. Her er detemployees.departmentogdepartment.name; - Vi grupperer derefter dataene efter
typefor at beregne den samlede løn ved hjælp afSUM()-funktionen.
Hvis dette virker komplekst, her er 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, laderJOIN-sætningen os kombinere hele tabeller, ikke kun de kolonner, de deler. Plus, medJOINer der ikke behov for subforespø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 af produkter i hver kategori. For at gøre dette skal du beregne summen af product.amount kolonnen.
Brug aliaset total_amount for denne kolonne.
I slutningen af din forespørgsel skal du sortere resultatet efter total_amount kolonnen i stigende rækkefølge.
I svaret skal du have 2 kolonner: category.name og total.amount.
Korte instruktioner
- Hent
category.namekolonnen og summen afproduct.amountkolonnen fraproducttabellen. - Tildel aliaset
total_amounttil den anden kolonne. - Sammenkæd
categorytabellen 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?
Why do we need to use table names before column names in JOIN queries?
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 online butik. De har 2 tabeller, der er relateret til hinanden. Den første tabel indeholder oplysninger om de produkter, der sælges i onlinebutikken.
Her er, hvordan product tabellen ser ud:
Den anden tabel indeholder produktkategorier på hjemmesiden, sammen med en kort beskrivelse for hver kategori.
Her er, hvordan category tabellen ser 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 vil bruge en JOIN erklæring for at opnå dette.
Før vi dykker ned i opgaven, lad os forstå, hvad en JOIN erklæring 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 hjælp af employees og department tabellerne. Deres fælles kolonne er employees.department og departments.name.
Bemærk
Når du skriver kolonner fra disse tabeller, skal du starte med tabellens navn, tilføje en prik, og derefter kolonnens navn. Dette hjælper med at holde koden klar, 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 for 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 bryde ned, hvordan vi brugte JOIN i vores forespørgsel:
- I
SELECT-delen lister vi de kolonner, vi ønsker fra begge tabeller, og sørger for at inkludere tabellens navn for klarhed; - I
JOIN-delen specificerer vi tabellen at forbinde og den fælles kolonne, der forbinder dem. Her er detemployees.departmentogdepartment.name; - Vi grupperer derefter dataene efter
typefor at beregne den samlede løn ved hjælp afSUM()-funktionen.
Hvis dette virker komplekst, her er 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, laderJOIN-sætningen os kombinere hele tabeller, ikke kun de kolonner, de deler. Plus, medJOINer der ikke behov for subforespø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 af produkter i hver kategori. For at gøre dette skal du beregne summen af product.amount kolonnen.
Brug aliaset total_amount for denne kolonne.
I slutningen af din forespørgsel skal du sortere resultatet efter total_amount kolonnen i stigende rækkefølge.
I svaret skal du have 2 kolonner: category.name og total.amount.
Korte instruktioner
- Hent
category.namekolonnen og summen afproduct.amountkolonnen fraproducttabellen. - Tildel aliaset
total_amounttil den anden kolonne. - Sammenkæd
categorytabellen 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