Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Union-Klausul | Indlejrede Underforespørgsler
Intermediær SQL

Union-Klausul

Stryg for at vise menuen

Du har fanget opmærksomheden fra en kunde, der har brug for SQL-forespørgsler. Før du dykker ned i JOINs, vil du lære om UNION-klausulen, som er essentiel for at kombinere flere tabeller.

Note
Definition

UNION i SQL bruges til at kombinere resultaterne af to eller flere SELECT-forespørgsler i ét samlet sæt. Det gør det muligt at sammenflette rækker fra flere forespørgsler til ét samlet datasæt.

Her er nogle vigtige ting at vide om brugen af UNION:

  1. Antal kolonner og rækkefølge: alle forespørgsler, der kombineres med UNION, skal have samme antal kolonner i samme rækkefølge;

  2. Datatyper: kolonnerne i hver forespørgsel skal have kompatible datatyper;

  3. Unikke rækker: som standard fjerner UNION dublerede rækker. Brug UNION ALL, hvis du vil beholde dubletter.

For bedre forståelse af hvordan man korrekt kombinerer tabeller ved hjælp af UNION-klausulen, er der blevet introduceret en ekstra tabel, der indeholder information om contractors.

Der er ikke mange oplysninger her, kun first_name, last_name og email.

Du kan se, at denne tabel har ligheder med employees-tabellen. Ved at bruge UNION-klausulen kan du kombinere disse to tabeller for eksempel for at se en liste over alle for- og efternavne på medarbejdere og contractors involveret i virksomheden.

For at gøre dette bruger du UNION-klausulen:

12345678
(SELECT employee_id as id, first_name, last_name FROM employees) UNION (SELECT contractor_id as id, first_name, last_name FROM contractors) ORDER BY id

Der er to forespørgsler, som hver returnerer tre kolonner med samme datatyper. Formålet er at vise Id, first_name og last_name for alle i virksomheden. Id-kolonnen er også omdøbt, så begge forespørgsler har samme kolonnenavne.

UNION kombinerer resultaterne af disse forespørgsler og fjerner dubletter (selvom der ikke er nogen her).

Resultaterne sorteres til sidst efter Id ved hjælp af ORDER BY.

Note
Bemærk

Resultaterne sorteres efter Id, som er en fælles kolonne i begge tabeller.

Efter brug af UNION får du en "enkel stor forespørgsel", som du yderligere kan manipulere med klausuler som ORDER BY.

Du kan ikke direkte bruge WHERE eller GROUP BY med tabeller kombineret ved hjælp af UNION. For at anvende disse klausuler skal du bruge en underforespørgsel i FROM-sektionen. Her er et eksempel på, hvordan det gøres:

123456789
SELECT id, first_name, last_name FROM ( SELECT employee_id AS id, first_name, last_name FROM employees UNION SELECT contractor_id AS id, first_name, last_name FROM contractors ) AS combined WHERE first_name = 'Jane'

Brug af en underforespørgsel i FROM-sektionen giver mere fleksibilitet! Det kan virke udfordrende i starten, men når du mestrer dette, bliver det meget nemmere at skrive komplekse forespørgsler.

1. Hvilke krav skal resultatsæt opfylde for at kunne kombineres med UNION?

2. Hvordan håndterer UNION-klausulen dublerede rækker som standard?

question mark

Hvilke krav skal resultatsæt opfylde for at kunne kombineres med UNION?

Vælg det korrekte svar

question mark

Hvordan håndterer UNION-klausulen dublerede rækker som standard?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 2. Kapitel 5
some-alt