Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära JOIN 2 Tabeller | Sammanfoga Tabeller
Intermediär SQL

Svep för att visa menyn

book
JOIN 2 Tabeller

Vi har fått uppmärksamheten 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 product-tabellen ut:

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

Så här ser category-tabellen ut:

Vår första uppgift ä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 dyker in i uppgiften, låt oss förstå vad ett JOIN-uttryck är och hur det fungerar.

För att slå samman två tabeller behöver 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.

Notera

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 talar om för SQL exakt vilken tabell och kolumn du menar.

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

Frågan för att utföra denna uppgift kommer att se ut så här:

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

Låt oss bryta ner 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 ser till att inkludera tabellnamnet för tydlighet;

  2. I JOIN-delen specificerar vi tabellen att gå med och den gemensamma kolumnen som länkar dem. Här är det employees.department och department.name;

  3. Vi grupperar sedan data efter type för att beräkna den totala lönen med hjälp av SUM()-funktionen.

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

sql

Notera

Till skillnad från UNION-klasulen, låter JOIN-satsen oss kombinera hela tabeller, inte bara de kolumner de delar. Dessutom, med JOIN, finns det inget behov av subfrågor som med 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, sortera resultatet efter kolumnen total_amount i stigande ordning.

I svaret bör du ha 2 kolumner: category.name och total.amount.

Kortfattade instruktioner

  • Hämta kolumnen category.name och summan av kolumnen product.amount från product-tabellen.
  • Tilldela aliaset total_amount till den andra kolumnen.
  • Slå samman category-tabellen med en JOIN-sats.
  • 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
Vi beklagar att något gick fel. Vad hände?

Fråga AI

expand
ChatGPT

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

book
JOIN 2 Tabeller

Vi har fått uppmärksamheten 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 product-tabellen ut:

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

Så här ser category-tabellen ut:

Vår första uppgift ä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 dyker in i uppgiften, låt oss förstå vad ett JOIN-uttryck är och hur det fungerar.

För att slå samman två tabeller behöver 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.

Notera

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 talar om för SQL exakt vilken tabell och kolumn du menar.

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

Frågan för att utföra denna uppgift kommer att se ut så här:

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

Låt oss bryta ner 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 ser till att inkludera tabellnamnet för tydlighet;

  2. I JOIN-delen specificerar vi tabellen att gå med och den gemensamma kolumnen som länkar dem. Här är det employees.department och department.name;

  3. Vi grupperar sedan data efter type för att beräkna den totala lönen med hjälp av SUM()-funktionen.

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

sql

Notera

Till skillnad från UNION-klasulen, låter JOIN-satsen oss kombinera hela tabeller, inte bara de kolumner de delar. Dessutom, med JOIN, finns det inget behov av subfrågor som med 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, sortera resultatet efter kolumnen total_amount i stigande ordning.

I svaret bör du ha 2 kolumner: category.name och total.amount.

Kortfattade instruktioner

  • Hämta kolumnen category.name och summan av kolumnen product.amount från product-tabellen.
  • Tilldela aliaset total_amount till den andra kolumnen.
  • Slå samman category-tabellen med en JOIN-sats.
  • 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
Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Vi beklagar att något gick fel. Vad hände?
some-alt