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

Union-sats

Svep för att visa menyn

Du har fångat uppmärksamheten hos en kund som behöver SQL-frågor. Innan du går vidare till JOINs kommer du att lära dig om UNION-satsen, som är avgörande för att kombinera flera tabeller.

Note
Definition

UNION i SQL används för att kombinera resultaten från två eller fler SELECT-frågor till en gemensam resultatmängd. Det gör det möjligt att slå samman rader från flera frågor till en enda resultatmängd av data.

Här är några viktiga saker att känna till om användning av UNION:

  1. Antal kolumner och ordning: 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 dubbletter. 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-satsen har en ytterligare tabell som innehåller information om contractors introducerats.

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

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

För att göra detta använder du UNION-satsen:

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

Det finns två frågor som vardera returnerar tre kolumner med samma datatyper. Målet är att visa Id, first_name och last_name för alla i företaget. Kolumnen Id har även bytt namn så att båda frågorna har samma kolumnnamn.

UNION kombinerar resultaten från dessa frågor och tar bort dubbletter (även om det inte finns några här).

Slutligen sorteras resultaten efter Id med hjälp av ORDER BY.

Note
Notering

Resultaten sorteras efter Id, som är en gemensam kolumn i båda tabellerna.

Efter att ha använt UNION får du en "enda stor fråga" som du kan vidarebearbeta med klausuler som ORDER BY.

Du kan inte direkt använda WHERE eller GROUP BY med tabeller som kombinerats med UNION. För att använda dessa klausuler måste du använda en subfråga i FROM-sektionen. Här är ett exempel på hur du 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'

Att använda en subfråga i FROM-sektionen ger oss mer flexibilitet! Det kan verka svårt till en början, men att behärska detta gör det mycket enklare att skriva komplexa frågor.

1. Vilka krav måste resultatuppsättningar uppfylla för att kunna kombineras med UNION?

2. Hur hanterar UNION-satsen dubblettrader som standard?

question mark

Vilka krav måste resultatuppsättningar uppfylla för att kunna kombineras med UNION?

Vänligen välj det korrekta svaret

question mark

Hur hanterar UNION-satsen dubblettrader som standard?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 5

Fråga AI

expand

Fråga AI

ChatGPT

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

Avsnitt 2. Kapitel 5
some-alt