Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Join 2 Tabeller | Sammanfogning av Tabeller
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Intermediär SQL

bookJoin 2 Tabeller

Vi har fått uppmärksamhet från ett företag som äger en liten nätbutik. De har 2 tabeller som är relaterade till varandra. Den första tabellen innehåller information om produkterna som säljs i nätbutiken.

Så här ser tabellen product ut:

Den andra tabellen innehåller produktkategorier på webbplatsen, tillsammans med en kort beskrivning för varje kategori.

Så här ser tabellen category ut:

Vårt första uppdrag är att sammanfoga dessa två tabeller för att ta reda på hur många produkter som finns i varje kategori. Vi kommer att använda ett JOIN-uttryck för att uppnå detta.

Innan vi går vidare till uppgiften, låt oss förstå vad ett JOIN-uttryck är och hur det fungerar.

Note
Definition

JOIN i SQL är en operation som kombinerar rader från två eller flera tabeller baserat på en relaterad kolumn mellan dem. JOIN möjliggör hämtning av data från flera tabeller i en enda fråga, vilket förenklar analys och bearbetning av relaterad data.

För att slå samman två tabeller måste de dela en gemensam kolumn. Låt oss se hur JOIN fungerar med hjälp av tabellerna employees och department. Deras gemensamma kolumn är employees.department och departments.name.

Note
Notering

När du skriver kolumner från dessa tabeller, börja med tabellnamnet, lägg till en punkt, och sedan kolumnnamnet. Detta hjälper till att hålla koden tydlig, särskilt när tabeller har kolumner med samma namn. Det anger exakt för SQL vilken tabell och kolumn du menar.

Här är uppgiften att hämta total lön för anställda i varje avdelningstyp (tech/non-tech).

Följande fråga används för att utföra denna uppgift:

1234
SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
copy

Här är en genomgång av hur vi använde JOIN i vår fråga:

  1. I SELECT-delen listar vi de kolumner vi vill ha från båda tabellerna, och anger tabellnamnet för tydlighet;
  2. I JOIN-delen anger vi tabellen som ska anslutas och den gemensamma kolumnen som kopplar dem samman. Här är det employees.department och department.name;
  3. Vi grupperar sedan data efter type för att beräkna total lön med funktionen SUM().

Om detta verkar komplicerat, här är en enkel syntax för att använda JOIN:

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

Till skillnad från UNION-satsen gör JOIN det möjligt att kombinera hela tabeller, inte bara de kolumner de har gemensamt. Dessutom krävs inga subfrågor med JOIN, till skillnad från UNION.

Uppgift

Swipe to start coding

Du behöver slå samman de två tabellerna: category och product. De gemensamma kolumnerna för dessa två tabeller är product.category_id och category.id.

Din uppgift är att hitta det totala antalet produkter i varje kategori. För att göra detta behöver du beräkna summan av kolumnen product.amount.

Använd aliaset total_amount för denna kolumn. I slutet av din fråga ska du sortera resultatet efter kolumnen total_amount i stigande ordning.

I svaret ska du ha 2 kolumner: category.name och total.amount.

Kortfattade instruktioner

  • Hämta kolumnen category.name och summan av kolumnen product.amount från tabellen product.
  • Tilldela aliaset total_amount till den andra kolumnen.
  • Slå samman tabellen category med hjälp av ett JOIN-uttryck.
  • Matcha tabellerna på den gemensamma kolumnen product.category_id = category.id.
  • Gruppera resultaten efter category.name.
  • Sortera resultaten efter total_amount.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 1
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

Can you explain how the JOIN would work for the product and category tables?

What type of JOIN should I use for this scenario?

Can you show an example query joining the product and category tables?

close

bookJoin 2 Tabeller

Svep för att visa menyn

Vi har fått uppmärksamhet från ett företag som äger en liten nätbutik. De har 2 tabeller som är relaterade till varandra. Den första tabellen innehåller information om produkterna som säljs i nätbutiken.

Så här ser tabellen product ut:

Den andra tabellen innehåller produktkategorier på webbplatsen, tillsammans med en kort beskrivning för varje kategori.

Så här ser tabellen category ut:

Vårt första uppdrag är att sammanfoga dessa två tabeller för att ta reda på hur många produkter som finns i varje kategori. Vi kommer att använda ett JOIN-uttryck för att uppnå detta.

Innan vi går vidare till uppgiften, låt oss förstå vad ett JOIN-uttryck är och hur det fungerar.

Note
Definition

JOIN i SQL är en operation som kombinerar rader från två eller flera tabeller baserat på en relaterad kolumn mellan dem. JOIN möjliggör hämtning av data från flera tabeller i en enda fråga, vilket förenklar analys och bearbetning av relaterad data.

För att slå samman två tabeller måste de dela en gemensam kolumn. Låt oss se hur JOIN fungerar med hjälp av tabellerna employees och department. Deras gemensamma kolumn är employees.department och departments.name.

Note
Notering

När du skriver kolumner från dessa tabeller, börja med tabellnamnet, lägg till en punkt, och sedan kolumnnamnet. Detta hjälper till att hålla koden tydlig, särskilt när tabeller har kolumner med samma namn. Det anger exakt för SQL vilken tabell och kolumn du menar.

Här är uppgiften att hämta total lön för anställda i varje avdelningstyp (tech/non-tech).

Följande fråga används för att utföra denna uppgift:

1234
SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
copy

Här är en genomgång av hur vi använde JOIN i vår fråga:

  1. I SELECT-delen listar vi de kolumner vi vill ha från båda tabellerna, och anger tabellnamnet för tydlighet;
  2. I JOIN-delen anger vi tabellen som ska anslutas och den gemensamma kolumnen som kopplar dem samman. Här är det employees.department och department.name;
  3. Vi grupperar sedan data efter type för att beräkna total lön med funktionen SUM().

Om detta verkar komplicerat, här är en enkel syntax för att använda JOIN:

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

Till skillnad från UNION-satsen gör JOIN det möjligt att kombinera hela tabeller, inte bara de kolumner de har gemensamt. Dessutom krävs inga subfrågor med JOIN, till skillnad från UNION.

Uppgift

Swipe to start coding

Du behöver slå samman de två tabellerna: category och product. De gemensamma kolumnerna för dessa två tabeller är product.category_id och category.id.

Din uppgift är att hitta det totala antalet produkter i varje kategori. För att göra detta behöver du beräkna summan av kolumnen product.amount.

Använd aliaset total_amount för denna kolumn. I slutet av din fråga ska du sortera resultatet efter kolumnen total_amount i stigande ordning.

I svaret ska du ha 2 kolumner: category.name och total.amount.

Kortfattade instruktioner

  • Hämta kolumnen category.name och summan av kolumnen product.amount från tabellen product.
  • Tilldela aliaset total_amount till den andra kolumnen.
  • Slå samman tabellen category med hjälp av ett JOIN-uttryck.
  • Matcha tabellerna på den gemensamma kolumnen product.category_id = category.id.
  • Gruppera resultaten efter category.name.
  • Sortera resultaten efter total_amount.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 1
single

single

some-alt