Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Liity 2 Taulukkoon | Taulujen Yhdistäminen
Keskitaso SQL

Pyyhkäise näyttääksesi valikon

book
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ä:

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

Käydään läpi, miten käytimme JOIN-komentoa kyselyssämme:

  1. SELECT-osassa luettelemme sarakkeet, jotka haluamme molemmista tauluista, varmistaen, että sisällytämme taulun nimen selkeyden vuoksi;

  2. JOIN-osassa määrittelemme taulun, johon yhdistetään ja yhteisen sarakkeen, joka yhdistää ne. Tässä tapauksessa se on employees.department ja department.name;

  3. 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äksi JOIN-lauseessa ei tarvita alikyselyjä kuten UNION-lauseessa.

Tehtävä

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 ja product.amount-sarakkeen summa product-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

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 1

Kysy tekoälyä

expand
ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

book
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ä:

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

Käydään läpi, miten käytimme JOIN-komentoa kyselyssämme:

  1. SELECT-osassa luettelemme sarakkeet, jotka haluamme molemmista tauluista, varmistaen, että sisällytämme taulun nimen selkeyden vuoksi;

  2. JOIN-osassa määrittelemme taulun, johon yhdistetään ja yhteisen sarakkeen, joka yhdistää ne. Tässä tapauksessa se on employees.department ja department.name;

  3. 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äksi JOIN-lauseessa ei tarvita alikyselyjä kuten UNION-lauseessa.

Tehtävä

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 ja product.amount-sarakkeen summa product-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

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 1
Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Pahoittelemme, että jotain meni pieleen. Mitä tapahtui?
some-alt