single
Liitä 2 Taulua
Pyyhkäise näyttääksesi valikon
Olet saanut huomion yritykseltä, joka omistaa pienen verkkokaupan. 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äsi on liittää nämä kaksi taulua selvittääksesi, kuinka monta tuotetta kuuluu kuhunkin kategoriaan. Käytät tähän JOIN-lausetta.
Ennen tehtävään siirtymistä tutustutaan siihen, mitä JOIN-lause tarkoittaa ja miten se toimii.
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 liittyvien tietojen analysointia ja käsittelyä.
Kahden taulun yhdistämiseksi niillä täytyy olla yhteinen sarake. Näissä tauluissa tämä yhteys on product.category_id ja category.id.
Kun kirjoitat näiden taulujen sarakkeita, aloita taulun nimellä, lisää piste ja sen jälkeen sarakkeen nimi. Tämä selkeyttää koodia, erityisesti silloin kun tauluissa on samannimisiä sarakkeita. Näin SQL tietää tarkalleen, mistä taulusta ja sarakkeesta on kyse.
Näin JOIN toimii käytännössä. Kuvitellaan, että haluamme hakea tuotteiden keskihinnan jokaiselle kategorian nimelle.
Tätä varten kysely näyttää tältä:
1234SELECT category.name, AVG(product.price) AS average_price FROM product JOIN category ON product.category_id = category.id GROUP BY category.name
Tässä on erittely siitä, miten käytimme JOIN-lausetta kyselyssämme:
SELECT-osassa luetellaan sarakkeet, jotka halutaan molemmista tauluista, ja varmistetaan, että taulun nimi mainitaan selkeyden vuoksi;JOIN-osassa määritellään liitettävä taulu (category) ja yhteiset sarakkeet, jotka yhdistävät taulut (product.category_id = category.id);- Tämän jälkeen ryhmitellään tiedot
category.name-sarakkeen mukaan, jotta voidaan laskea keskihintaAVG()-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
Toisin kuin UNION-lause, JOIN-lauseella voidaan yhdistää kokonaisia tauluja, ei pelkästään niiden yhteisiä sarakkeita. Huomaa, että UNION ei itsessään vaadi alikyselyitä — alikyselyitä tarvitaan vain, jos halutaan suodattaa tai ryhmitellä yhdistettyä tulosjoukkoa. Useimmissa tapauksissa UNION voidaan käyttää suoraan kahden SELECT-lauseen välillä ilman alikyselyitä.
Pyyhkäise aloittaaksesi koodauksen
Sinun tulee yhdistää kaksi taulua: category ja product. Näiden taulujen 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.
Lajittele kyselyn lopputulos total_amount -sarakkeen mukaan nousevaan järjestykseen.
Vastauksessa tulee olla kaksi saraketta: category.name ja total.amount.
Lyhyet ohjeet
- Hae
category.name-sarake sekäproduct.amount-sarakkeen summaproduct-taulusta. - Anna toiselle sarakkeelle alias
total_amount. - Yhdistä
category-taulu käyttämälläJOIN-lausetta. - Yhdistä taulut yhteisen sarakkeen perusteella:
product.category_id = category.id. - Ryhmittele tulokset
category.name-sarakkeen mukaan. - Lajittele tulokset
total_amount-sarakkeen mukaan.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme