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
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.

Her er noen viktige punkter 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 duplikatrader. Bruk UNION ALL hvis du vil beholde duplikater.

For å gi bedre forståelse av hvordan man korrekt kombinerer tabeller ved bruk av UNION-setningen, er det lagt til 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 konsulenter 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

En nærmere forklaring 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 kolonnenavnet Id i begge spørringene slik at de har samme 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 hjelp av ORDER BY.

Note

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

Etter å ha brukt UNION får vi en "enkel stor spørring" som vi kan manipulere videre med klauseer 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 langt enklere å skrive komplekse spørringer.

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

2. Hvordan håndterer UNION-setningen duplikatrader 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 duplikatrader 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 know when to use a subquery with UNION?

Can you show more examples of using UNION with different tables?

Awesome!

Completion rate improved to 4

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.

Her er noen viktige punkter 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 duplikatrader. Bruk UNION ALL hvis du vil beholde duplikater.

For å gi bedre forståelse av hvordan man korrekt kombinerer tabeller ved bruk av UNION-setningen, er det lagt til 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 konsulenter 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

En nærmere forklaring 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 kolonnenavnet Id i begge spørringene slik at de har samme 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 hjelp av ORDER BY.

Note

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

Etter å ha brukt UNION får vi en "enkel stor spørring" som vi kan manipulere videre med klauseer 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 langt enklere å skrive komplekse spørringer.

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

2. Hvordan håndterer UNION-setningen duplikatrader 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 duplikatrader som standard?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 5
some-alt