Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Union-Klausul | Nästlade Underfrågor
Intermediär SQL
course content

Kursinnehåll

Intermediär SQL

Intermediär SQL

1. Gruppering
2. Nästlade Underfrågor
3. Sammanfoga Tabeller
4. DDL och DML i SQL

book
Union-Klausul

Vi har fångat uppmärksamheten hos en klient som behöver SQL-frågor. Innan vi dyker in i JOINs, låt oss lära oss om UNION-satsen, som är viktig för att kombinera flera tabeller.

Här är några viktiga saker att veta om att använda UNION:

  1. Antal och ordning på kolumner: Alla frågor som kombineras med UNION måste ha samma antal kolumner i samma ordning;

  2. Datatyper: Kolumnerna i varje fråga måste ha kompatibla datatyper;

  3. Unika rader: Som standard tar UNION bort dubblettrader. Använd UNION ALL om du vill behålla dubbletter.

För en bättre förståelse av hur man korrekt kombinerar tabeller med hjälp av UNION-klause, introducerade jag en ytterligare tabell som innehåller information om contractors.

Det finns inte mycket information här, bara first_name, last_name och email.

Du kan se att denna tabell har likheter med employees-tabellen. Med hjälp av UNION-klause kan vi kombinera dessa två tabeller för att till exempel se en lista över alla namn och efternamn på anställda och contractors som är involverade i företaget.

För att göra detta, kommer vi att använda UNION-klause:

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

Låt oss bryta ner vad som händer:

Vi har två frågor som vardera returnerar tre kolumner med samma datatyper. Vi vill se Id, first_name och last_name för alla i företaget. Vi har också bytt namn på Id-kolumnen så att båda frågorna har samma kolumnnamn.

Sedan använder vi UNION för att kombinera resultaten av dessa frågor, vilket tar bort dubbletter (även om det inte finns några här).

Slutligen sorterar vi resultaten efter Id med ORDER BY.

Notera

Vi sorterar efter Id, vilket är en gemensam kolumn i båda tabellerna.

Efter att ha använt UNION får vi en "enkel stor fråga" som vi kan manipulera vidare med klausuler som ORDER BY.

Vi kan inte direkt använda WHERE eller GROUP BY med tabeller kombinerade med UNION. För att tillämpa dessa klausuler behöver vi använda en subquery i FROM-sektionen. Här är ett exempel på hur 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

Att använda en subquery i FROM-sektionen ger oss mer flexibilitet! Det kan verka knepigt till en början, men att bemästra detta kommer att göra det mycket enklare att skriva komplexa frågor.

1. Vilka kolumner krävs när man använder UNION-satsen i SQL?

2. Hur behandlar UNION-satsen dubblettrader som standard?

question mark

Vilka kolumner krävs när man använder UNION-satsen i SQL?

Select the correct answer

question mark

Hur behandlar UNION-satsen dubblettrader som standard?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 5

Fråga AI

expand
ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

course content

Kursinnehåll

Intermediär SQL

Intermediär SQL

1. Gruppering
2. Nästlade Underfrågor
3. Sammanfoga Tabeller
4. DDL och DML i SQL

book
Union-Klausul

Vi har fångat uppmärksamheten hos en klient som behöver SQL-frågor. Innan vi dyker in i JOINs, låt oss lära oss om UNION-satsen, som är viktig för att kombinera flera tabeller.

Här är några viktiga saker att veta om att använda UNION:

  1. Antal och ordning på kolumner: Alla frågor som kombineras med UNION måste ha samma antal kolumner i samma ordning;

  2. Datatyper: Kolumnerna i varje fråga måste ha kompatibla datatyper;

  3. Unika rader: Som standard tar UNION bort dubblettrader. Använd UNION ALL om du vill behålla dubbletter.

För en bättre förståelse av hur man korrekt kombinerar tabeller med hjälp av UNION-klause, introducerade jag en ytterligare tabell som innehåller information om contractors.

Det finns inte mycket information här, bara first_name, last_name och email.

Du kan se att denna tabell har likheter med employees-tabellen. Med hjälp av UNION-klause kan vi kombinera dessa två tabeller för att till exempel se en lista över alla namn och efternamn på anställda och contractors som är involverade i företaget.

För att göra detta, kommer vi att använda UNION-klause:

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

Låt oss bryta ner vad som händer:

Vi har två frågor som vardera returnerar tre kolumner med samma datatyper. Vi vill se Id, first_name och last_name för alla i företaget. Vi har också bytt namn på Id-kolumnen så att båda frågorna har samma kolumnnamn.

Sedan använder vi UNION för att kombinera resultaten av dessa frågor, vilket tar bort dubbletter (även om det inte finns några här).

Slutligen sorterar vi resultaten efter Id med ORDER BY.

Notera

Vi sorterar efter Id, vilket är en gemensam kolumn i båda tabellerna.

Efter att ha använt UNION får vi en "enkel stor fråga" som vi kan manipulera vidare med klausuler som ORDER BY.

Vi kan inte direkt använda WHERE eller GROUP BY med tabeller kombinerade med UNION. För att tillämpa dessa klausuler behöver vi använda en subquery i FROM-sektionen. Här är ett exempel på hur 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

Att använda en subquery i FROM-sektionen ger oss mer flexibilitet! Det kan verka knepigt till en början, men att bemästra detta kommer att göra det mycket enklare att skriva komplexa frågor.

1. Vilka kolumner krävs när man använder UNION-satsen i SQL?

2. Hur behandlar UNION-satsen dubblettrader som standard?

question mark

Vilka kolumner krävs när man använder UNION-satsen i SQL?

Select the correct answer

question mark

Hur behandlar UNION-satsen dubblettrader som standard?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 5
Vi beklagar att något gick fel. Vad hände?
some-alt