---
title: "Skillnad emellan UNION och UNION ALL?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/100379-skillnad-emellan-union-och-union-all"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "KoTTeN"
published: "2004-03-26T19:59:23.000Z"
updated: "2004-03-29T07:51:11.000Z"
replies: 10
views: 263
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/100379-skillnad-emellan-union-och-union-all"
---

# Skillnad emellan UNION och UNION ALL?

## #1 — KoTTeN, 2004-03-26T19:59Z

Hej! Som rubriken lyder, vad är skillnaden?

Permalänk: https://www.webforum.nu/p/100379

## #2 — LarsG, 2004-03-26T20:06Z

Union - utan (eventuella) duplikat
Union all - med (eventuella) duplikat

Permalänk: https://www.webforum.nu/p/1310382

## #3 — KoTTeN, 2004-03-26T20:43Z

Efter en snabb genomgång i ordboken under d så förstår jag någolunda :). Men vad är det som räknas som duplikat? Är det när samtliga fält man hämtar data från har samma innehåll?

Permalänk: https://www.webforum.nu/p/1310389

## #4 — aasah, 2004-03-26T23:03Z

Bör röra sig om två rader med samma innehåll. Ex:
A
namn  lön  chef
Anna   20   Karin
Björn   21   Karin

B
namn  lön  chef
Dan     20   Karin
Eva     17   Joel

SELECT lön, chef FROM A
UNION 
SELECT lön, chef FROM B

ger

lön  chef
20   Karin
21   Karin
17   Joel

medan 
SELECT lön, chef FROM A
UNION ALL
SELECT lön, chef FROM B

ger

lön  chef
20   Karin
21   Karin
20   Karin
17   Joel

Permalänk: https://www.webforum.nu/p/1310445

## #5 — KoTTeN, 2004-03-26T23:19Z

Ok, då är jag med på noterna! 
Men yterligare en fråga: Säg att jag har samma databasstruktur som ovan med samma innehåll. Det jag vill är att hämta datan ur båda tabellerna och sen sortera de efter lön, exempelvis

```
SELECT lön, chef FROM A ORDER BY lön
UNION ALL
SELECT lön, chef FROM B
```

Men får inte detta att fungera, får det sorterat efter positionen i databasen. Hur löser jag detta?

Permalänk: https://www.webforum.nu/p/1310452

## #6 — aasah, 2004-03-26T23:29Z

Problemet - med det du skrev - är att först får du ut all relevant info ur A, därefter all relevant info from B. Men det du vill är att sortera hela klabbet tillsammans antar jag. Och då måste du på något sätt se till att du tittar på unionens alla rader innan du sorterar.

Det här är i alla fall ett sätt (möjligt att det går på andra sätt också).

CREATE VIEW C AS
SELECT lön, chef FROM A 
UNION ALL
SELECT lön, chef FROM B;

SELECT \* FROM C
ORDER BY lön;

Permalänk: https://www.webforum.nu/p/1310457

## #7 — KoTTeN, 2004-03-26T23:45Z

Ok, blir till att testa det imorgon efter några timmars skön sömn :)
Men ett stort tack till er, aasah och LarsG för hjälpen!

Permalänk: https://www.webforum.nu/p/1310460

## #8 — LarsG, 2004-03-27T12:28Z

```
SELECT lön, chef FROM A 
UNION ALL
SELECT lön, chef FROM B
ORDER BY lön
```

Permalänk: https://www.webforum.nu/p/1310569

## #9 — KoTTeN, 2004-03-27T22:27Z

Får tyvärr följande flemedelande när jag testar larsGs kod: 

> Microsoft JET Database Engine (0x80004005)
> ORDER BY-uttrycket (KatUndID) innehåller fält som inte hämtas med frågan. Endast fält som hämtas med första frågan kan ingå i ORDER BY-uttrycket.

 
Kan det bero på att det fält jag vill sortera efter har olika namn i de totalt tre olika tabellerna jag hämtar ifrån, till skillnad från exempelt här ovan då båda heter lön? Dess innehåll är självklart av samma typ, tal närmare bestämt.

Permalänk: https://www.webforum.nu/p/1310705

## #10 — LarsG, 2004-03-28T13:38Z

Namnen i resultatet bestäms av namnen i den första frågan så det dessa namn du kan använda i order by.

Permalänk: https://www.webforum.nu/p/1310842

## #11 — KoTTeN, 2004-03-29T07:51Z

Tack LarsG, nu fungerar det prima!

Permalänk: https://www.webforum.nu/p/1311109

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/100379-skillnad-emellan-union-och-union-all
