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
Mellemliggende SQL

bookUNION-Klausul

Vi har tiltrukket os opmærksomheden fra en kunde, der har brug for SQL-forespørgsler. Før vi går i gang med JOINs, skal vi lære om UNION-klausulen, som er afgørende for at kombinere flere tabeller.

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 at give en bedre forståelse af hvordan man korrekt kombinerer tabeller ved hjælp af UNION-klausulen, har jeg introduceret en ekstra tabel, der indeholder oplysninger 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 vi kombinere disse to tabeller for eksempelvis at se en liste over alle for- og efternavne på medarbejdere og konsulenter, der er involveret i virksomheden.

For at gøre dette bruger vi 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
copy

Lad os gennemgå, hvad der sker:

Vi har to forespørgsler, der hver returnerer tre kolonner med samme datatyper. Vi ønsker at se Id, first_name og last_name for alle i virksomheden. Vi har også omdøbt Id-kolonnen, så begge forespørgsler har samme kolonnenavne.

Derefter bruger vi UNION til at kombinere resultaterne af disse forespørgsler, hvor dubletter fjernes (selvom der ikke er nogen her).

Til sidst sorterer vi resultaterne efter Id ved hjælp af ORDER BY.

Bemærk

Vi sorterer efter Id, som er en fælles kolonne i begge tabeller.

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

Vi kan ikke direkte bruge WHERE eller GROUP BY med tabeller, der er kombineret ved hjælp af UNION. For at anvende disse klausuler skal vi bruge en subforespø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'
copy

Ved at bruge en subforespørgsel i FROM-sektionen opnår vi større fleksibilitet! Det kan virke udfordrende i starten, men når du mestrer dette, bliver det meget nemmere at skrive komplekse forespørgsler.

1. Hvilke kolonner er påkrævet, når man bruger UNION-klausulen i SQL?

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

question mark

Hvilke kolonner er påkrævet, når man bruger UNION-klausulen i SQL?

Select the correct answer

question mark

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

Select the correct answer

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

Awesome!

Completion rate improved to 4

bookUNION-Klausul

Stryg for at vise menuen

Vi har tiltrukket os opmærksomheden fra en kunde, der har brug for SQL-forespørgsler. Før vi går i gang med JOINs, skal vi lære om UNION-klausulen, som er afgørende for at kombinere flere tabeller.

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 at give en bedre forståelse af hvordan man korrekt kombinerer tabeller ved hjælp af UNION-klausulen, har jeg introduceret en ekstra tabel, der indeholder oplysninger 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 vi kombinere disse to tabeller for eksempelvis at se en liste over alle for- og efternavne på medarbejdere og konsulenter, der er involveret i virksomheden.

For at gøre dette bruger vi 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
copy

Lad os gennemgå, hvad der sker:

Vi har to forespørgsler, der hver returnerer tre kolonner med samme datatyper. Vi ønsker at se Id, first_name og last_name for alle i virksomheden. Vi har også omdøbt Id-kolonnen, så begge forespørgsler har samme kolonnenavne.

Derefter bruger vi UNION til at kombinere resultaterne af disse forespørgsler, hvor dubletter fjernes (selvom der ikke er nogen her).

Til sidst sorterer vi resultaterne efter Id ved hjælp af ORDER BY.

Bemærk

Vi sorterer efter Id, som er en fælles kolonne i begge tabeller.

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

Vi kan ikke direkte bruge WHERE eller GROUP BY med tabeller, der er kombineret ved hjælp af UNION. For at anvende disse klausuler skal vi bruge en subforespø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'
copy

Ved at bruge en subforespørgsel i FROM-sektionen opnår vi større fleksibilitet! Det kan virke udfordrende i starten, men når du mestrer dette, bliver det meget nemmere at skrive komplekse forespørgsler.

1. Hvilke kolonner er påkrævet, når man bruger UNION-klausulen i SQL?

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

question mark

Hvilke kolonner er påkrævet, når man bruger UNION-klausulen i SQL?

Select the correct answer

question mark

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

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 5
some-alt