SQL Academy · leksjon

Slik fungerer INNER JOIN

Forstå INNER JOIN som et filtrert kartesisk produkt, skriv sammenføyningsbetingelser, og les EXPLAIN-resultater for sammenføyninger.

Leksjon 2 av 413 trinn

Slik fungerer INNER JOIN er en gratis leksjon i SQL Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i SQL Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i SQL Academy inneholder totalt 4 leksjoner.

INNER JOIN

INNER JOIN returnerer bare rader som har et samsvarende par i BEGGE tabellene, basert på ON-betingelsen.

Grunnleggende INNER JOIN

Hent hver bestilling sammen med brukeren:

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;

Flere betingelser i ON

ON-klausulen er et vanlig boolsk uttrykk:

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;

Aliaser

Aliaser gjør spørringer kortere og unngår tvetydige kolonnereferanser:

SELECT o.id, u.email
FROM orders AS o          -- AS is optional
JOIN users  AS u ON u.id = o.user_id;

Join av tre eller flere tabeller

Kjed sammen join-operasjoner ved å gjenta JOIN-klausulen:

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 (kolonne)

Når join-kolonnen har samme navn i begge tabellene, kan De skrive USING – da fjernes den dupliserte kolonnen fra resultatet:

SELECT o.id, total, email
FROM orders
JOIN users USING (user_id);   -- requires both tables to have user_id

NATURAL JOIN

Join-operasjonen bruker alle kolonner med samme navn – vær forsiktig, for dette blir skjørt når kolonner legges til.

-- Avoid in production code:
SELECT * FROM orders NATURAL JOIN users;

JOIN-betingelser kontra WHERE

For INNER JOIN er en betingelse i ON logisk ekvivalent med en betingelse i WHERE. Konvensjonen er at filtre som definerer JOIN-relasjonen, plasseres i ON, mens radfiltre plasseres i WHERE.

SELECT * FROM orders o
JOIN users u ON u.id = o.user_id   -- join condition
WHERE u.country = 'US';            -- row filter

Resultatmultiplikasjon

Hvis en rad i A samsvarer med tre rader i B, får resultatet tre rader. Dette er normalt, men kan overraske når De glemmer det. Skal De aggregere? Bruk COUNT(*) med forsiktighet.

Forhåndsvisning av self-join

De kan koble en tabell til seg selv ved å gi hver forekomst et forskjellig alias:

SELECT e.full_name AS employee, m.full_name AS manager
FROM employees e
JOIN employees m ON m.id = e.manager_id;

Ytelse for INNER JOIN

Inner join-operasjoner er raske når:

  • Join-kolonnen er indeksert, særlig på FK-siden
  • Én tabell er liten, slik at hash-join kan brukes, eller begge er sortert, slik at merge-join kan brukes
  • De filtrerer tidlig for å holde antallet mellomliggende rader lavt

Oppsummering

INNER JOIN beholder bare samsvarende par.

  • JOIN = INNER JOIN som standard
  • ON uttrykker join-betingelsen
  • Aliaser holder spørringene korte
  • Join-kolonner bør være indeksert

Kort sjekk

Hva returnerer orders INNER JOIN users ON users.id = orders.user_id når en bestilling ikke har noen samsvarende bruker, altså er foreldreløs?

Gratis å komme i gang

Lær deg SQL med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
46
Leksjoner
183

Ofte stilte spørsmål

Er leksjonen «Slik fungerer INNER JOIN» gratis?

Ja – hele teksten i «Slik fungerer INNER JOIN» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av SQL Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i SQL Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Slik fungerer INNER JOIN»?

Forstå INNER JOIN som et filtrert kartesisk produkt, skriv sammenføyningsbetingelser, og les EXPLAIN-resultater for sammenføyninger. Du øver på SQL Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med SQL Academy?

Ingen tidligere erfaring er nødvendig. SQL Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Slik fungerer INNER JOIN»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne SQL Academy-leksjonen?

Ja. Alle SQL Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Hvorfor JOIN? (repetisjon av relasjonsmodellen)
  2. Slik fungerer INNER JOIN
  3. LEFT/RIGHT JOIN og OUTER JOIN
  4. Selv-sammenføyninger og aliaser
← Tilbake til SQL Academy