INNER JOIN -liitoksen toimintaperiaate
Ymmärtäkää INNER JOIN suodatettuna karteesiseen tulona, kirjoittakaa liitosehdot ja tulkitkaa liitosten EXPLAIN-tulostetta.
INNER JOIN -liitoksen toimintaperiaate on ilmainen SQL Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu SQL Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. SQL Academy-kurssilla on yhteensä 4 oppituntia.
INNER JOIN
INNER JOIN palauttaa vain rivit, joille löytyy vastaava pari MOLEMMISTA tauluista ON-ehdon perusteella.
Perustason INNER JOIN
Hakekaa jokainen tilaus käyttäjineen:
SELECT o.id, o.total, u.email
FROM orders o
INNER JOIN users u ON u.id = o.user_id;
-- INNER is the default — you can also write:
SELECT o.id, o.total, u.email
FROM orders o
JOIN users u ON u.id = o.user_id;Useita ehtoja ON-lausekkeessa
ON-lauseke on tavallinen totuusarvolauseke:
SELECT *
FROM events e
JOIN sessions s
ON s.user_id = e.user_id
AND e.created_at BETWEEN s.start_at AND s.end_at;Aliakset
Aliakset lyhentävät kyselyitä ja estävät epäselvät sarakeviittaukset:
SELECT o.id, u.email
FROM orders AS o -- AS is optional
JOIN users AS u ON u.id = o.user_id;Kolmen tai useamman taulun liittäminen
Ketjuttakaa liitokset toistamalla JOIN-lauseke:
SELECT o.id, u.email, p.name AS product
FROM orders o
JOIN users u ON u.id = o.user_id
JOIN products p ON p.id = o.product_id;USING (column)
Kun liitossarakkeella on sama nimi molemmissa tauluissa, voitte kirjoittaa USING — se poistaa sarakkeen monistumisen tulosteessa:
SELECT o.id, total, email
FROM orders
JOIN users USING (user_id); -- requires both tables to have user_idNATURAL JOIN
Liittää taulut kaikkien samannimisten sarakkeiden perusteella — varokaa sitä, sillä rakenne on hauras, kun sarakkeita lisätään.
-- Avoid in production code:
SELECT * FROM orders NATURAL JOIN users;JOIN-ehdot ja WHERE-lauseke
INNER JOIN -liitoksessa ON-lausekkeen ehto vastaa loogisesti WHERE-lausekkeen ehtoa. Käytäntö: JOIN-suhteen määrittävät ehdot sijoitetaan ON-lausekkeeseen ja rivien suodatusehdot WHERE-lausekkeeseen.
SELECT * FROM orders o
JOIN users u ON u.id = o.user_id -- join condition
WHERE u.country = 'US'; -- row filterTulosten monistuminen
Jos yksi taulun A rivi täsmää kolmeen taulun B riviin, tuloksessa on kolme riviä. Tämä on normaalia — mutta yllättävää, jos se unohtuu. Kun käytätte aggregaattifunktiota, käyttäkää COUNT(*)-funktiota huolellisesti.
Esikatsaus itseviittaukseen
Voitte liittää taulun itseensä antamalla sen jokaiselle esiintymälle eri aliaksen:
SELECT e.full_name AS employee, m.full_name AS manager
FROM employees e
JOIN employees m ON m.id = e.manager_id;INNER JOIN -liitoksen suorituskyky
Sisäliitokset ovat nopeita, kun:
- Liitossarake on indeksoitu (erityisesti vierasavainpuolella)
- Toinen taulu on pieni (hash-liitos) tai molemmat taulut on lajiteltu (merge-liitos)
- Suodatatte aikaisin, jotta väliaikaisten rivien määrä pysyy pienenä
Kertaus
INNER JOIN säilyttää vain vastaavat parit.
- JOIN tarkoittaa oletusarvoisesti INNER JOIN -liitosta
- ON ilmaisee liitosehdon
- Aliakset pitävät kyselyt lyhyinä
- Liitossarakkeet kannattaa indeksoida
Pikatarkistus
Mitä orders INNER JOIN users ON users.id = orders.user_id palauttaa, jos tilaukselle ei löydy vastaavaa käyttäjää (orpoa)?
Opi SQL tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 46
- Oppitunnit
- 183
Usein kysytyt kysymykset
Onko oppitunti ”INNER JOIN -liitoksen toimintaperiaate” ilmainen?
Kyllä – oppitunnin ”INNER JOIN -liitoksen toimintaperiaate” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko SQL Academy-kurssin, päivitä CoddyKit PROhon. SQL Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”INNER JOIN -liitoksen toimintaperiaate”?
Ymmärtäkää INNER JOIN suodatettuna karteesiseen tulona, kirjoittakaa liitosehdot ja tulkitkaa liitosten EXPLAIN-tulostetta. Harjoittelet SQL Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni SQL Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin SQL Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”INNER JOIN -liitoksen toimintaperiaate”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä SQL Academy-oppitunnilla?
Kyllä. Jokainen SQL Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Miksi liitoksia käytetään (relaatiomallin kertaus)
- INNER JOIN -liitoksen toimintaperiaate
- LEFT/RIGHT JOIN ja OUTER-liitokset
- Itseliitokset ja aliakset