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 Subfrågor
Intermediär SQL

bookUnion-sats

Vi har fångat intresset hos en kund som behöver SQL-frågor. Innan vi går vidare till JOINs, ska vi lära oss om UNION-satsen, som är avgörande för att kombinera flera tabeller.

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 att ge en bättre förståelse för hur man korrekt kombinerar tabeller med hjälp av UNION-satsen har jag lagt till 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 tabellen employees. Med hjälp av UNION-satsen kan vi kombinera dessa två tabeller för att till exempel visa en lista över alla för- och efternamn på anställda och konsulter som är involverade i företaget.

För att göra detta använder vi 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
copy

Låt oss förklara vad som händer:

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

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

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

Note

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

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

Vi kan inte direkt använda WHERE eller GROUP BY med tabeller som kombineras med UNION. För att använda dessa klausuler behöver vi använda en subfråga 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 subfråga i FROM-sektionen ger oss större flexibilitet! Det kan verka svårt till en början, men att bemästra detta gör det mycket enklare att skriva komplexa frågor.

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

2. Hur hanterar UNION-satsen dubblettrader som standard?

question mark

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

Select the correct answer

question mark

Hur hanterar 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

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

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

Svep för att visa menyn

Vi har fångat intresset hos en kund som behöver SQL-frågor. Innan vi går vidare till JOINs, ska vi lära oss om UNION-satsen, som är avgörande för att kombinera flera tabeller.

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 att ge en bättre förståelse för hur man korrekt kombinerar tabeller med hjälp av UNION-satsen har jag lagt till 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 tabellen employees. Med hjälp av UNION-satsen kan vi kombinera dessa två tabeller för att till exempel visa en lista över alla för- och efternamn på anställda och konsulter som är involverade i företaget.

För att göra detta använder vi 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
copy

Låt oss förklara vad som händer:

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

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

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

Note

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

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

Vi kan inte direkt använda WHERE eller GROUP BY med tabeller som kombineras med UNION. För att använda dessa klausuler behöver vi använda en subfråga 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 subfråga i FROM-sektionen ger oss större flexibilitet! Det kan verka svårt till en början, men att bemästra detta gör det mycket enklare att skriva komplexa frågor.

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

2. Hur hanterar UNION-satsen dubblettrader som standard?

question mark

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

Select the correct answer

question mark

Hur hanterar 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
some-alt