Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære UNION-setning | Nøstede Underforespørsler
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Videregående SQL

bookUNION-setning

Vi har fått oppmerksomheten til en kunde som trenger SQL-spørringer. Før vi går videre til JOINs, skal vi lære om UNION-setningen, som er viktig for å kombinere flere tabeller.

Note
Definisjon

UNION i SQL brukes til å kombinere resultatene fra to eller flere SELECT-spørringer til ett samlet resultatsett. Dette gjør det mulig å slå sammen rader fra flere spørringer til ett enkelt datasett.

Her er noen viktige ting å vite om bruk av UNION:

  1. Antall kolonner og rekkefølge: alle spørringer som kombineres med UNION må ha samme antall kolonner i samme rekkefølge;

  2. Datatyper: kolonnene i hver spørring må ha kompatible datatyper;

  3. Unike rader: som standard fjerner UNION dupliserte rader. Bruk UNION ALL hvis du ønsker å beholde duplikater.

For bedre forståelse av hvordan man korrekt kombinerer tabeller ved bruk av UNION-klauselet, er det introdusert en ekstra tabell som inneholder informasjon om contractors.

Det er ikke mye informasjon her, kun first_name, last_name og email.

Du kan se at denne tabellen har likheter med employees-tabellen. Ved å bruke UNION-klauselet kan vi kombinere disse to tabellene for å for eksempel vise en liste over alle fornavn og etternavn til ansatte og innleide som er involvert i selskapet.

For å gjøre dette, bruker vi UNION-klauselet:

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

La oss se nærmere på hva som skjer:

Vi har to spørringer som hver returnerer tre kolonner med samme datatyper. Vi ønsker å vise Id, first_name og last_name for alle i selskapet. Vi har også gitt kolonnen Id samme navn i begge spørringene slik at de har identiske kolonnenavn.

Deretter bruker vi UNION for å kombinere resultatene fra disse spørringene, og fjerner duplikater (selv om det ikke finnes noen her).

Til slutt sorterer vi resultatene etter Id ved å bruke ORDER BY.

Note
Merk

Vi sorterer etter Id, som er en felles kolonne i begge tabellene.

Etter bruk av UNION får vi en "enkel stor spørring" som vi kan manipulere videre med klausuler som ORDER BY.

Det er ikke mulig å bruke WHERE eller GROUP BY direkte med tabeller som er kombinert ved hjelp av UNION. For å bruke disse klausulene, må vi benytte en underforespørsel i FROM-delen. Her er et eksempel på hvordan dette gjø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 å bruke en underforespørsel i FROM-delen får vi større fleksibilitet. Det kan virke utfordrende i starten, men å mestre dette vil gjøre det mye enklere å skrive komplekse spørringer.

1. Hvilke kolonner kreves når du bruker UNION-setningen i SQL?

2. Hvordan håndterer UNION-setningen dupliserte rader som standard?

question mark

Hvilke kolonner kreves når du bruker UNION-setningen i SQL?

Select the correct answer

question mark

Hvordan håndterer UNION-setningen dupliserte rader som standard?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 5

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

Can you explain the difference between UNION and UNION ALL?

How do I use GROUP BY with a UNION result?

Can you show more examples of using subqueries with UNION?

bookUNION-setning

Sveip for å vise menyen

Vi har fått oppmerksomheten til en kunde som trenger SQL-spørringer. Før vi går videre til JOINs, skal vi lære om UNION-setningen, som er viktig for å kombinere flere tabeller.

Note
Definisjon

UNION i SQL brukes til å kombinere resultatene fra to eller flere SELECT-spørringer til ett samlet resultatsett. Dette gjør det mulig å slå sammen rader fra flere spørringer til ett enkelt datasett.

Her er noen viktige ting å vite om bruk av UNION:

  1. Antall kolonner og rekkefølge: alle spørringer som kombineres med UNION må ha samme antall kolonner i samme rekkefølge;

  2. Datatyper: kolonnene i hver spørring må ha kompatible datatyper;

  3. Unike rader: som standard fjerner UNION dupliserte rader. Bruk UNION ALL hvis du ønsker å beholde duplikater.

For bedre forståelse av hvordan man korrekt kombinerer tabeller ved bruk av UNION-klauselet, er det introdusert en ekstra tabell som inneholder informasjon om contractors.

Det er ikke mye informasjon her, kun first_name, last_name og email.

Du kan se at denne tabellen har likheter med employees-tabellen. Ved å bruke UNION-klauselet kan vi kombinere disse to tabellene for å for eksempel vise en liste over alle fornavn og etternavn til ansatte og innleide som er involvert i selskapet.

For å gjøre dette, bruker vi UNION-klauselet:

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

La oss se nærmere på hva som skjer:

Vi har to spørringer som hver returnerer tre kolonner med samme datatyper. Vi ønsker å vise Id, first_name og last_name for alle i selskapet. Vi har også gitt kolonnen Id samme navn i begge spørringene slik at de har identiske kolonnenavn.

Deretter bruker vi UNION for å kombinere resultatene fra disse spørringene, og fjerner duplikater (selv om det ikke finnes noen her).

Til slutt sorterer vi resultatene etter Id ved å bruke ORDER BY.

Note
Merk

Vi sorterer etter Id, som er en felles kolonne i begge tabellene.

Etter bruk av UNION får vi en "enkel stor spørring" som vi kan manipulere videre med klausuler som ORDER BY.

Det er ikke mulig å bruke WHERE eller GROUP BY direkte med tabeller som er kombinert ved hjelp av UNION. For å bruke disse klausulene, må vi benytte en underforespørsel i FROM-delen. Her er et eksempel på hvordan dette gjø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 å bruke en underforespørsel i FROM-delen får vi større fleksibilitet. Det kan virke utfordrende i starten, men å mestre dette vil gjøre det mye enklere å skrive komplekse spørringer.

1. Hvilke kolonner kreves når du bruker UNION-setningen i SQL?

2. Hvordan håndterer UNION-setningen dupliserte rader som standard?

question mark

Hvilke kolonner kreves når du bruker UNION-setningen i SQL?

Select the correct answer

question mark

Hvordan håndterer UNION-setningen dupliserte rader som standard?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 5
some-alt