Left, Right ja Inner Joinit
Verkkokauppa on tilannut lisää tuotteita toimittajalta, koska varasto oli vähissä. Tämä tarkoittaa, että meillä on hieman vapaata aikaa, kunnes lähetys saapuu.
Käytetään tämä tilaisuus oppia jotain uutta! Tähän asti olet käyttänyt SQL:n standardia JOIN
-komentoa, mutta on olemassa myös muita liittymätyyppejä, joita voit käyttää.
Tässä ovat 4 päätyyppiä taululiitoksista:
INNER JOIN
: Palauttaa rivit, joilla on vastaavat arvot molemmissa tauluissa. Tämä on sama kuin käyttämäsi standardi JOIN;
LEFT JOIN
: Palauttaa kaikki rivit vasemmasta taulusta ja vastaavat rivit oikeasta taulusta. Jos vastaavuuksia ei ole, se palauttaaNULL
oikealle taululle;
RIGHT JOIN
: Palauttaa kaikki rivit oikeasta taulusta ja vastaavat rivit vasemmasta taulusta. Jos vastaavuuksia ei ole, se palauttaaNULL
vasemmalle taululle;
FULL JOIN
: Palauttaa kaikki rivit, kun jossakin taulussa on osuma. Jos osumia ei ole, se palauttaaNULL
puuttuville arvoille toisessa taulussa.
Ennen kuin sukellamme näiden liittymien käyttöön, tarkistetaan kaksi taulua, joiden kanssa työskentelemme. Ne sisältävät tietoja kursseista ja niille ilmoittautuneista opiskelijoista.
courses
:
enrollments
:
Näiden liittymätyyppien käyttö on itse asiassa yksinkertaista. Sen sijaan, että käyttäisit tuttua JOIN
tai INNER JOIN
, määritä vain LEFT JOIN
tai jokin muu JOIN
-tyyppi:
sql
Swipe to start coding
Kirjoita kysely, joka hakee luettelon kaikista kursseista ja niille ilmoittautuneista opiskelijoista, mukaan lukien kurssit, joilla ei ole rekisteröityjä opiskelijoita.
Sinun on haettava seuraavat sarakkeet tässä järjestyksessä:
bash
Käytä tehtävän ratkaisemiseen sopivaa JOIN
-tyyppiä!
Lyhyet ohjeet
- Hae sarakkeet
courses.course_id
,courses.course_name
,courses.description
,enrollments.student_name
jaenrollments.enrollment_date
courses
-taulusta. - Käytä LEFT JOIN liittyäksesi
enrollments
-tauluun. - Yhteinen sarake molemmille tauluille on
courses.course_id = enrollments.course_id
.
Ratkaisu
Kiitos palautteestasi!