JOIN (INNER/LEFT/RIGHT/FULL OUTER), subforespørgsler
It A · STX · A-niveau · Databaser og datamodellering
💻 JOIN (INNER/LEFT/RIGHT/FULL OUTER), subforespørgsler
SQL JOIN = sammenkædning af flere tabeller til én resultat.
JOIN-typer:
1.
INNER JOIN — KUN rækker hvor MATCH findes i begge tabeller. Mest almindelig. Eksempel: SELECT k.navn, o.dato FROM Kunde k INNER JOIN Ordre o ON k.id = o.kundeid.
2.
LEFT JOIN (LEFT OUTER JOIN) — alle rækker fra VENSTRE tabel + matchende fra højre. Hvor ingen match: NULL i højre-felter. Bruges til at finde "alle kunder, også dem uden ordrer".
3.
RIGHT JOIN — omvendt af LEFT. Sjældent brugt — kan altid omskrives til LEFT.
4.
FULL OUTER JOIN — alle rækker fra BEGGE, NULL hvor ingen match. Kun standard SQL — MySQL har det ikke (brug UNION som workaround).
5.
CROSS JOIN — kartesiansk produkt (alle kombinationer).
Selv-JOIN — JOIN til samme tabel (fx find ansattes chefer i medarbejder-hierarki).
Subforespørgsler (subqueries):
- (a) SELECT-list-subquery —
SELECT navn, (SELECT COUNT(*) FROM Ordre o WHERE o.kundeid=k.id) AS antal_ordrer FROM Kunde k. - (b) WHERE-subquery —
SELECT navn FROM Kunde WHERE id IN (SELECT kundeid FROM Ordre WHERE total > 1000). - (c) FROM-subquery —
SELECT FROM (SELECT FROM Ordre WHERE år=2024) AS o2024. - (d) Korrelaterede subqueries — refererer ydre query, kører for hver række (langsomt). EXISTS, IN, ANY, ALL = subquery-operatorer.
JOIN vs. subquery: ofte samme resultat — vælg det der er mest læsbart. Performance: JOIN typisk hurtigere.
It A-fokus: skrive komplekse SQL-queries med 2-3 JOINs.
Læringsmål
- Anvende forskellige JOIN-typer til at kombinere data fra flere tabeller
- Skrive subforespørgsler til at løse komplekse forespørgsler
- Vælge den rette JOIN-type ud fra en given problemstilling
Sådan kan du arbejde med emnet
- Skriv en INNER JOIN-forespørgsel og en LEFT JOIN på samme tabeller — forklar, hvad der er forskelligt i resultatet
- Skriv en subforespørgsel, der finder alle kunder, der har bestilt et bestemt produkt
- Forklar, hvornår du ville foretrække en subforespørgsel frem for en JOIN
Arbejd iterativt med prototyper og dokumentation. Test, evaluér og dokumentér.
Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.
Prøv Fagportalen gratis