Join 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.
Den andra tabellen innehåller produktkategorier på webbplatsen, tillsammans med en kort beskrivning för varje kategori.
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.
För att sammanfoga två tabeller måste de dela en gemensam kolumn. Låt oss se hur JOIN fungerar med tabellerna employees och department. Deras gemensamma kolumn är employees.department och departments.name.
När du skriver kolumner från dessa tabeller, börja med tabellnamnet, lägg till en punkt och sedan kolumnnamnet. Detta gör 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:
1234SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
Låt oss analysera hur vi använde JOIN i vår fråga:
- I
SELECT-delen listar vi de kolumner vi vill ha från båda tabellerna, och inkluderar tabellnamnet för tydlighet; - I
JOIN-delen anger vi tabellen att ansluta och den gemensamma kolumnen som länkar dem. Här är detemployees.departmentochdepartment.name; - Vi grupperar sedan data efter
typeför att beräkna total lön med funktionenSUM().
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
Till skillnad från UNION-satsen låter JOIN oss kombinera hela tabeller, inte bara de kolumner de har gemensamt. Dessutom krävs inga subfrågor med JOIN, till skillnad från UNION.
Swipe to start coding
Du behöver sammanfoga 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.nameoch summan av kolumnenproduct.amountfrån tabellenproduct. - Tilldela aliaset
total_amounttill den andra kolumnen. - Sammanfoga tabellen
categorymed hjälp av enJOIN-sats. - Matcha tabellerna på den gemensamma kolumnen
product.category_id = category.id. - Gruppera resultaten efter
category.name. - Sortera resultaten efter
total_amount.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Can you explain the different types of SQL JOINs?
How do I know which column to use for joining tables?
Can you show an example using the products and categories tables?
Fantastiskt!
Completion betyg förbättrat till 4
Join 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.
Den andra tabellen innehåller produktkategorier på webbplatsen, tillsammans med en kort beskrivning för varje kategori.
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.
För att sammanfoga två tabeller måste de dela en gemensam kolumn. Låt oss se hur JOIN fungerar med tabellerna employees och department. Deras gemensamma kolumn är employees.department och departments.name.
När du skriver kolumner från dessa tabeller, börja med tabellnamnet, lägg till en punkt och sedan kolumnnamnet. Detta gör 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:
1234SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
Låt oss analysera hur vi använde JOIN i vår fråga:
- I
SELECT-delen listar vi de kolumner vi vill ha från båda tabellerna, och inkluderar tabellnamnet för tydlighet; - I
JOIN-delen anger vi tabellen att ansluta och den gemensamma kolumnen som länkar dem. Här är detemployees.departmentochdepartment.name; - Vi grupperar sedan data efter
typeför att beräkna total lön med funktionenSUM().
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
Till skillnad från UNION-satsen låter JOIN oss kombinera hela tabeller, inte bara de kolumner de har gemensamt. Dessutom krävs inga subfrågor med JOIN, till skillnad från UNION.
Swipe to start coding
Du behöver sammanfoga 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.nameoch summan av kolumnenproduct.amountfrån tabellenproduct. - Tilldela aliaset
total_amounttill den andra kolumnen. - Sammanfoga tabellen
categorymed hjälp av enJOIN-sats. - Matcha tabellerna på den gemensamma kolumnen
product.category_id = category.id. - Gruppera resultaten efter
category.name. - Sortera resultaten efter
total_amount.
Lösning
Tack för dina kommentarer!
single