Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Union-Klausul | Nestede Underforespørsler
Videregående SQL
course content

Kursinnhold

Videregående SQL

Videregående SQL

1. Grouping
2. Nestede Underforespørsler
3. Slå Sammen Tabeller
4. DDL og DML i SQL

book
Union-Klausul

Vi har fått oppmerksomheten til en klient som trenger SQL-spørringer. Før vi dykker inn i JOINs, la oss lære om UNION-klausulen, som er essensiell for å kombinere flere tabeller.

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

  1. Antall kolonner og rekkefølge: Alle spørringer kombinert 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 en bedre forståelse av hvordan man korrekt kombinerer tabeller ved bruk av UNION-klausulen, har jeg introdusert en ekstra tabell som inneholder informasjon om contractors.

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

Du kan se at denne tabellen har likheter med employees-tabellen. Ved å bruke UNION-klausulen kan vi kombinere disse to tabellene for å for eksempel se en liste over alle navn og etternavn til ansatte og contractors involvert i selskapet.

For å gjøre dette, vil vi bruke 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

La oss bryte ned 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 til alle i selskapet. Vi har også gitt nytt navn til Id-kolonnen slik at begge spørringene har samme kolonnenavn.

Deretter bruker vi UNION for å kombinere resultatene av 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 direkte bruke WHERE eller GROUP BY med tabeller kombinert ved hjelp av UNION. For å bruke disse klausulene, må vi bruke en subquery i FROM-seksjonen. Her er et eksempel på hvordan du gjø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

Å bruke en subquery i FROM-seksjonen gir oss mer fleksibilitet! Det kan virke vanskelig i begynnelsen, men å mestre dette vil gjøre det mye enklere å skrive komplekse spørringer.

1. Hvilke kolonner er nødvendige når du bruker UNION-klause i SQL?

2. Hvordan behandler UNION-klause dupliserte rader som standard?

question mark

Hvilke kolonner er nødvendige når du bruker UNION-klause i SQL?

Select the correct answer

question mark

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

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

course content

Kursinnhold

Videregående SQL

Videregående SQL

1. Grouping
2. Nestede Underforespørsler
3. Slå Sammen Tabeller
4. DDL og DML i SQL

book
Union-Klausul

Vi har fått oppmerksomheten til en klient som trenger SQL-spørringer. Før vi dykker inn i JOINs, la oss lære om UNION-klausulen, som er essensiell for å kombinere flere tabeller.

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

  1. Antall kolonner og rekkefølge: Alle spørringer kombinert 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 en bedre forståelse av hvordan man korrekt kombinerer tabeller ved bruk av UNION-klausulen, har jeg introdusert en ekstra tabell som inneholder informasjon om contractors.

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

Du kan se at denne tabellen har likheter med employees-tabellen. Ved å bruke UNION-klausulen kan vi kombinere disse to tabellene for å for eksempel se en liste over alle navn og etternavn til ansatte og contractors involvert i selskapet.

For å gjøre dette, vil vi bruke 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

La oss bryte ned 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 til alle i selskapet. Vi har også gitt nytt navn til Id-kolonnen slik at begge spørringene har samme kolonnenavn.

Deretter bruker vi UNION for å kombinere resultatene av 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 direkte bruke WHERE eller GROUP BY med tabeller kombinert ved hjelp av UNION. For å bruke disse klausulene, må vi bruke en subquery i FROM-seksjonen. Her er et eksempel på hvordan du gjø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

Å bruke en subquery i FROM-seksjonen gir oss mer fleksibilitet! Det kan virke vanskelig i begynnelsen, men å mestre dette vil gjøre det mye enklere å skrive komplekse spørringer.

1. Hvilke kolonner er nødvendige når du bruker UNION-klause i SQL?

2. Hvordan behandler UNION-klause dupliserte rader som standard?

question mark

Hvilke kolonner er nødvendige når du bruker UNION-klause i SQL?

Select the correct answer

question mark

Hvordan behandler UNION-klause dupliserte rader som standard?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 5
Vi beklager at noe gikk galt. Hva skjedde?
some-alt