Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Join Kahden Taulun Välillä | Taulujen Yhdistäminen
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Keskitaso SQL

bookJoin Kahden Taulun Välillä

Olemme herättäneet pienen verkkokaupan omistavan yrityksen huomion. Heillä on 2 taulua, jotka liittyvät toisiinsa. Ensimmäinen taulu sisältää tietoja verkkokaupassa myytävistä tuotteista.

Tältä näyttää product-taulu:

Toinen taulu sisältää verkkosivuston tuotekategoriat sekä lyhyen kuvauksen jokaisesta kategoriasta.

Tältä näyttää category-taulu:

Ensimmäinen tehtävämme on liittää nämä kaksi taulua yhteen selvittääksemme, kuinka monta tuotetta kuuluu kuhunkin kategoriaan. Käytämme tähän JOIN-lausetta.

Ennen tehtävän aloittamista tarkastellaan, mitä JOIN-lause tarkoittaa ja miten se toimii.

Note
Määritelmä

JOIN SQL:ssä on operaatio, joka yhdistää rivejä kahdesta tai useammasta taulusta niiden välisten yhteisten sarakkeiden perusteella. JOIN mahdollistaa tietojen hakemisen useista tauluista yhdellä kyselyllä, mikä yksinkertaistaa toisiinsa liittyvien tietojen analysointia ja käsittelyä.

Kahden taulun yhdistämiseksi niillä tulee olla yhteinen sarake. Tarkastellaan, miten JOIN toimii käyttämällä employees ja department -tauluja. Niiden yhteinen sarake on employees.department ja departments.name.

Note
Huomio

Kun kirjoitat näiden taulujen sarakkeita, aloita taulun nimellä, lisää piste ja sen jälkeen sarakkeen nimi. Tämä auttaa pitämään koodin selkeänä, erityisesti silloin kun tauluissa on samannimisiä sarakkeita. Näin SQL tietää tarkalleen, mitä taulua ja saraketta tarkoitat.

Tässä tehtävänä on hakea kokonaispalkka työntekijöille jokaisessa osastotyypissä (tech/non-tech).

Tätä tehtävää varten käytettävä 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-lausetta kyselyssämme:

  1. SELECT-osassa luetellaan sarakkeet, jotka halutaan molemmista tauluista, ja varmistetaan taulun nimen käyttö selkeyden vuoksi;
  2. JOIN-osassa määritellään liitettävä taulu ja yhteinen sarake, joka yhdistää ne. Tässä tapauksessa se on employees.department ja department.name;
  3. Tiedot ryhmitellään type-sarakkeen mukaan, jotta voidaan laskea kokonaispalkka SUM()-funktiolla.

Jos tämä vaikuttaa monimutkaiselta, tässä on yksinkertainen syntaksi JOIN-käytölle:

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

Toisin kuin UNION-lause, JOIN-lause mahdollistaa kokonaisten taulukoiden yhdistämisen, ei pelkästään yhteisten sarakkeiden. Lisäksi JOIN-lauseessa ei tarvita alikyselyitä kuten UNION-lauseessa.

Tehtävä

Swipe to start coding

Sinun tulee yhdistää kaksi taulua: category ja product. Näiden kahden taulun yhteiset sarakkeet ovat product.category_id ja category.id.

Tehtävänäsi on selvittää tuotteiden kokonaismäärä jokaisessa kategoriassa. Tätä varten sinun tulee laskea yhteen product.amount -sarakkeen arvot.

Käytä tälle sarakkeelle aliasta total_amount. Kyselyn lopuksi järjestä tulos total_amount -sarakkeen mukaan nousevaan järjestykseen.

Vastauksessa tulee olla 2 saraketta: category.name ja total.amount.

Lyhyet ohjeet

  • Hae category.name -sarake ja product.amount -sarakkeen summa product-taulusta.
  • Anna toiselle sarakkeelle alias total_amount.
  • Yhdistä category-taulu käyttämällä JOIN-lausetta.
  • Yhdistä taulut yhteisen sarakkeen product.category_id = category.id perusteella.
  • Ryhmittele tulokset category.name mukaan.
  • Järjestä tulokset total_amount mukaan.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 1
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

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 Kahden Taulun Välillä

Pyyhkäise näyttääksesi valikon

Olemme herättäneet pienen verkkokaupan omistavan yrityksen huomion. Heillä on 2 taulua, jotka liittyvät toisiinsa. Ensimmäinen taulu sisältää tietoja verkkokaupassa myytävistä tuotteista.

Tältä näyttää product-taulu:

Toinen taulu sisältää verkkosivuston tuotekategoriat sekä lyhyen kuvauksen jokaisesta kategoriasta.

Tältä näyttää category-taulu:

Ensimmäinen tehtävämme on liittää nämä kaksi taulua yhteen selvittääksemme, kuinka monta tuotetta kuuluu kuhunkin kategoriaan. Käytämme tähän JOIN-lausetta.

Ennen tehtävän aloittamista tarkastellaan, mitä JOIN-lause tarkoittaa ja miten se toimii.

Note
Määritelmä

JOIN SQL:ssä on operaatio, joka yhdistää rivejä kahdesta tai useammasta taulusta niiden välisten yhteisten sarakkeiden perusteella. JOIN mahdollistaa tietojen hakemisen useista tauluista yhdellä kyselyllä, mikä yksinkertaistaa toisiinsa liittyvien tietojen analysointia ja käsittelyä.

Kahden taulun yhdistämiseksi niillä tulee olla yhteinen sarake. Tarkastellaan, miten JOIN toimii käyttämällä employees ja department -tauluja. Niiden yhteinen sarake on employees.department ja departments.name.

Note
Huomio

Kun kirjoitat näiden taulujen sarakkeita, aloita taulun nimellä, lisää piste ja sen jälkeen sarakkeen nimi. Tämä auttaa pitämään koodin selkeänä, erityisesti silloin kun tauluissa on samannimisiä sarakkeita. Näin SQL tietää tarkalleen, mitä taulua ja saraketta tarkoitat.

Tässä tehtävänä on hakea kokonaispalkka työntekijöille jokaisessa osastotyypissä (tech/non-tech).

Tätä tehtävää varten käytettävä 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-lausetta kyselyssämme:

  1. SELECT-osassa luetellaan sarakkeet, jotka halutaan molemmista tauluista, ja varmistetaan taulun nimen käyttö selkeyden vuoksi;
  2. JOIN-osassa määritellään liitettävä taulu ja yhteinen sarake, joka yhdistää ne. Tässä tapauksessa se on employees.department ja department.name;
  3. Tiedot ryhmitellään type-sarakkeen mukaan, jotta voidaan laskea kokonaispalkka SUM()-funktiolla.

Jos tämä vaikuttaa monimutkaiselta, tässä on yksinkertainen syntaksi JOIN-käytölle:

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

Toisin kuin UNION-lause, JOIN-lause mahdollistaa kokonaisten taulukoiden yhdistämisen, ei pelkästään yhteisten sarakkeiden. Lisäksi JOIN-lauseessa ei tarvita alikyselyitä kuten UNION-lauseessa.

Tehtävä

Swipe to start coding

Sinun tulee yhdistää kaksi taulua: category ja product. Näiden kahden taulun yhteiset sarakkeet ovat product.category_id ja category.id.

Tehtävänäsi on selvittää tuotteiden kokonaismäärä jokaisessa kategoriassa. Tätä varten sinun tulee laskea yhteen product.amount -sarakkeen arvot.

Käytä tälle sarakkeelle aliasta total_amount. Kyselyn lopuksi järjestä tulos total_amount -sarakkeen mukaan nousevaan järjestykseen.

Vastauksessa tulee olla 2 saraketta: category.name ja total.amount.

Lyhyet ohjeet

  • Hae category.name -sarake ja product.amount -sarakkeen summa product-taulusta.
  • Anna toiselle sarakkeelle alias total_amount.
  • Yhdistä category-taulu käyttämällä JOIN-lausetta.
  • Yhdistä taulut yhteisen sarakkeen product.category_id = category.id perusteella.
  • Ryhmittele tulokset category.name mukaan.
  • Järjestä 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
single

single

some-alt