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-klasulen, som er viktig for å kombinere flere tabeller.

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 vil beholde duplikater.

For å gi en bedre forståelse av hvordan man korrekt kombinerer tabeller ved bruk av UNION-klasulen, har jeg 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-klasulen 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-klasulen:

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 gå gjennom hva som skjer:

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

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

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

Merk

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 klausuler som ORDER BY.

Vi kan ikke 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

Å bruke en underforespørsel i FROM-delen gir oss 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

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-klasulen, som er viktig for å kombinere flere tabeller.

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 vil beholde duplikater.

For å gi en bedre forståelse av hvordan man korrekt kombinerer tabeller ved bruk av UNION-klasulen, har jeg 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-klasulen 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-klasulen:

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 gå gjennom hva som skjer:

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

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

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

Merk

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 klausuler som ORDER BY.

Vi kan ikke 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

Å bruke en underforespørsel i FROM-delen gir oss 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