Liity 2 Taulukkoon
Olemme saaneet huomion yritykseltä, joka omistaa pienen verkkokaupan. Heillä on 2 taulukkoa, jotka liittyvät toisiinsa. Ensimmäinen taulukko sisältää tietoa verkkokaupassa myydyistä tuotteista.
Tältä product
-taulukko näyttää:
Toinen taulukko sisältää verkkosivuston tuotekategoriat sekä lyhyen kuvauksen jokaisesta kategoriasta.
Tältä category
-taulukko näyttää:
Ensimmäinen tehtävämme on liittää nämä kaksi taulukkoa selvittääksemme, kuinka monta tuotetta on kussakin kategoriassa. Käytämme tähän JOIN
-lausetta.
Ennen kuin sukellamme tehtävään, ymmärretään, mitä JOIN
-lause on ja miten se toimii.
Liittääksesi kaksi taulukkoa, niiden täytyy jakaa yhteinen sarake. Katsotaanpa, miten JOIN
toimii käyttämällä employees
- ja department
-taulukoita. Niiden yhteinen sarake on employees.department
ja departments.name
.
Huomautus
Kun kirjoitat sarakkeita näistä taulukoista, aloita taulukon nimellä, lisää piste ja sitten sarakkeen nimi. Tämä auttaa pitämään koodin selkeänä, erityisesti kun taulukoissa on samoja sarakenimiä. Se kertoo SQL:lle tarkalleen, mitä taulukkoa ja saraketta tarkoitat.
Tässä on tehtävä, jossa haetaan työntekijöiden kokonaispalkka kussakin osastotyypissä (tech
/non-tech
).
Tämän tehtävän suorittava kysely näyttää tältä:
SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
Käydään läpi, miten käytimme JOIN
-komentoa kyselyssämme:
SELECT
-osassa luettelemme sarakkeet, jotka haluamme molemmista tauluista, varmistaen, että sisällytämme taulun nimen selkeyden vuoksi;JOIN
-osassa määrittelemme taulun, johon yhdistetään ja yhteisen sarakkeen, joka yhdistää ne. Tässä tapauksessa se onemployees.department
jadepartment.name
;Sitten ryhmittelemme tiedot
type
-kentän mukaan laskeaksemme kokonaispalkan käyttämälläSUM()
-funktiota.
Jos tämä vaikuttaa monimutkaiselta, tässä on yksinkertainen syntaksi JOIN
-komennon käyttöön:
sql
Huomautus
Toisin kuin
UNION
-lauseke,JOIN
-lause mahdollistaa koko taulukoiden yhdistämisen, ei vain niiden jakamia sarakkeita. LisäksiJOIN
-lauseessa ei tarvita alikyselyjä kutenUNION
-lauseessa.
Swipe to start coding
Sinun täytyy yhdistää kaksi taulukkoa: category
ja product
. Näiden kahden taulukon yhteiset sarakkeet ovat product.category_id
ja category.id
.
Tehtäväsi on löytää tuotteiden kokonaismäärä jokaisessa kategoriassa. Tätä varten sinun täytyy laskea yhteen product.amount
-sarakkeen arvot.
Käytä tälle sarakkeelle aliasia total_amount
.
Kyselyn lopussa lajittele tulos total_amount
-sarakkeen mukaan nousevassa järjestyksessä.
Vastauksessa pitäisi olla 2 saraketta: category.name
ja total.amount
.
Lyhyet ohjeet
- Hae
category.name
-sarake japroduct.amount
-sarakkeen summaproduct
-taulukosta. - Anna toiselle sarakkeelle alias
total_amount
. - Yhdistä
category
-taulukko käyttämälläJOIN
-lausetta. - Yhdistä taulukot yhteisen sarakkeen
product.category_id = category.id
perusteella. - Ryhmittele tulokset
category.name
perusteella. - Lajittele tulokset
total_amount
mukaan.
Ratkaisu
Kiitos palautteestasi!