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
course content

Kursusindhold

Mellemliggende SQL

Mellemliggende SQL

1. Gruppering
2. Indlejrede Underforespørgsler
3. Sammenføjning af Tabeller
4. DDL og DML i SQL

book
Union Klausul

Vi har fanget opmærksomheden fra en klient, der har brug for SQL-forespørgsler. Før vi dykker ned i JOINs, lad os lære om UNION-klausulen, som er essentiel for at kombinere flere tabeller.

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

  1. Kolonneantal og rækkefølge: Alle forespørgsler kombineret med UNION skal have det samme antal kolonner i den 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 en bedre forståelse af hvordan man korrekt kombinerer tabeller ved hjælp af UNION-klausulen, har jeg introduceret en ekstra tabel, der indeholder information om contractors.

Der er ikke meget information her, kun first_name, last_name og email.

Du kan se, at denne tabel har ligheder med employees-tabellen. Ved hjælp af UNION-klausulen kan vi kombinere disse to tabeller for eksempelvis at se en liste over alle navne og efternavne på employees og contractors involveret i virksomheden.

For at gøre dette vil vi bruge 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 de samme datatyper. Vi vil se Id, first_name og last_name for alle i virksomheden. Vi omdøbte også Id-kolonnen, så begge forespørgsler har de samme kolonnenavne.

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

Endelig 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 at have brugt 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 kombineret ved hjælp af UNION. For at anvende disse klausuler skal vi bruge en subquery i FROM-sektionen. Her er et eksempel på, hvordan man gør det:

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

At bruge en subquery i FROM-sektionen giver os mere fleksibilitet! Det kan virke vanskeligt i starten, men at mestre dette vil gøre det meget lettere at skrive komplekse forespørgsler.

1. Hvilke kolonner er nødvendige, når man bruger UNION-klausulen i SQL?

2. Hvordan behandler UNION-klausulen duplikerede rækker som standard?

question mark

Hvilke kolonner er nødvendige, når man bruger UNION-klausulen i SQL?

Select the correct answer

question mark

Hvordan behandler UNION-klausulen duplikerede 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
ChatGPT

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

course content

Kursusindhold

Mellemliggende SQL

Mellemliggende SQL

1. Gruppering
2. Indlejrede Underforespørgsler
3. Sammenføjning af Tabeller
4. DDL og DML i SQL

book
Union Klausul

Vi har fanget opmærksomheden fra en klient, der har brug for SQL-forespørgsler. Før vi dykker ned i JOINs, lad os lære om UNION-klausulen, som er essentiel for at kombinere flere tabeller.

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

  1. Kolonneantal og rækkefølge: Alle forespørgsler kombineret med UNION skal have det samme antal kolonner i den 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 en bedre forståelse af hvordan man korrekt kombinerer tabeller ved hjælp af UNION-klausulen, har jeg introduceret en ekstra tabel, der indeholder information om contractors.

Der er ikke meget information her, kun first_name, last_name og email.

Du kan se, at denne tabel har ligheder med employees-tabellen. Ved hjælp af UNION-klausulen kan vi kombinere disse to tabeller for eksempelvis at se en liste over alle navne og efternavne på employees og contractors involveret i virksomheden.

For at gøre dette vil vi bruge 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 de samme datatyper. Vi vil se Id, first_name og last_name for alle i virksomheden. Vi omdøbte også Id-kolonnen, så begge forespørgsler har de samme kolonnenavne.

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

Endelig 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 at have brugt 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 kombineret ved hjælp af UNION. For at anvende disse klausuler skal vi bruge en subquery i FROM-sektionen. Her er et eksempel på, hvordan man gør det:

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

At bruge en subquery i FROM-sektionen giver os mere fleksibilitet! Det kan virke vanskeligt i starten, men at mestre dette vil gøre det meget lettere at skrive komplekse forespørgsler.

1. Hvilke kolonner er nødvendige, når man bruger UNION-klausulen i SQL?

2. Hvordan behandler UNION-klausulen duplikerede rækker som standard?

question mark

Hvilke kolonner er nødvendige, når man bruger UNION-klausulen i SQL?

Select the correct answer

question mark

Hvordan behandler UNION-klausulen duplikerede rækker som standard?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 5
Vi beklager, at noget gik galt. Hvad skete der?
some-alt