PostgreSQL Union, Union ALLA med exempel
โก Smart sammanfattning
PostgreSQL UNION kombinerar resultaten av tvรฅ eller flera SELECT-satser till en enda resultatuppsรคttning och tar bort dubbletter av rader, medan UNION ALL behรฅller varje rad, vilket ger ett snabbare alternativ nรคr dubbletter inte spelar nรฅgon roll.

Vad รคr PostgreSQL Union?
Ocuco-landskapet PostgreSQL UNION-operatorn anvรคnds fรถr att kombinera resultatuppsรคttningar frรฅn mer รคn en SELECT-sats till en resultatuppsรคttning. Alla duplicerade rader frรฅn resultaten av SELECT-satserna elimineras. UNION-operatรถren arbetar under tvรฅ villkor:
- SELECT-frรฅgorna mรฅste returnera samma antal kolumner.
- Datatyperna fรถr alla motsvarande kolumner mรฅste vara kompatibla.
UNION-operatorn anvรคnds normalt fรถr att kombinera data frรฅn relaterade tabeller som inte har normaliserats perfekt.
syntax
SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)] UNION SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)];
Hรคr รคr en fรถrklaring till ovanstรฅende parametrar:
Expression_1, expression_2, โฆ expression_n รคr de berรคkningar eller kolumner som du behรถver hรคmta.
Tabellerna รคr de tabeller som du behรถver hรคmta poster frรฅn.
WHERE-villkoren รคr de villkor som mรฅste uppfyllas fรถr att poster ska kunna hรคmtas.
Obs: Eftersom UNION-operatorn inte returnerar dubbletter kommer anvรคndningen av UNION DISTINCT inte att ha nรฅgon inverkan pรฅ resultaten.
PostgreSQL Union
UNION-operatorn tar bort dubbletter, pรฅ samma sรคtt som VรLJ DISTINCT gรถr. Lรฅt oss demonstrera detta. Vi har en databas som heter Demo med fรถljande tabeller:
Bok:
Pris:
Lรฅt oss kรถra fรถljande kommando:
SELECT id FROM Book UNION SELECT id FROM Price;
Kommandot returnerar fรถljande:
Id-kolumnen visas i bรฅde bok- och pristabellerna. Det visas dock bara en gรฅng i resultatet. Anledningen รคr det PostgreSQL UNION-operatorn returnerar inte dubbletter.
PostgreSQL Union Alla
Den hรคr operatorn kombinerar resultatuppsรคttningar frรฅn mer รคn en SELECT-sats utan att ta bort dubbletter. Operatรถren krรคver att varje SELECT-sats har ett liknande antal fรคlt i resultatuppsรคttningar av liknande datatyper.
Syntax:
SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)] UNION ALL SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)];
Hรคr รคr en fรถrklaring till ovanstรฅende parametrar:
Expression_1, expression_2, โฆ expression_n รคr de berรคkningar eller kolumner som du behรถver hรคmta.
Tabellerna รคr de tabeller som du behรถver hรคmta poster frรฅn.
WHERE-villkoren รคr de villkor som mรฅste uppfyllas fรถr att poster ska kunna hรคmtas.
Obs: Bรฅda SELECT-satserna mรฅste ha lika mรฅnga uttryck.
Vi kommer att anvรคnda fรถljande tabeller:
Bok:
Pris:
Kรถr fรถljande kommando:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Det bรถr returnera fรถljande:
Dubletterna har inte tagits bort.
SORTERA EFTER
Ocuco-landskapet PostgreSQL UNION-operatorn kan anvรคndas tillsammans med ORDER BY-satsen fรถr att ordna frรฅgeresultaten. Fรถr att visa detta kommer vi att anvรคnda fรถljande tabeller:
Pris:
Pris2:
Hรคr รคr kommandot som visar hur man anvรคnder UNION-operatorn tillsammans med ORDER BY-satsen:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price;
Kommandot returnerar fรถljande:
Skivorna sorterades efter priskolumnen. Klausulen ordnar posterna i stigande ordning som standard. Fรถr att ordna dem i fallande ordning, lรคgg till DESC-satsen som visas nedan:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price DESC;
Kommandot returnerar fรถljande:
Posterna har ordnats baserat pรฅ priskolumnen i fallande ordning.
Nรคr ska man anvรคnda Union och nรคr ska man anvรคnda Union All?
Anvรคnd operatorn UNION nรคr du har flera tabeller med liknande struktur men som รคr uppdelade av en anledning. Den รคr bra nรคr du behรถver ta bort eller eliminera dubbletter av poster.
Anvรคnd operatorn UNION ALL nรคr du inte behรถver ta bort eller eliminera dubbletter av poster.
Anvรคnder pgAdmin
Lรฅt oss nu se hur alla tre รฅtgรคrderna utfรถrs med pgAdmin.
Sรฅ hรคr anvรคnder du PostgreSQL Union med hjรคlp av pgAdmin
Fรถljande รคr en steg-fรถr-steg-process fรถr hur man anvรคnder PostgreSQL UNION via pgAdmin:
Steg 1) Logga in pรฅ ditt pgAdmin-konto.
Steg 2) I navigeringsfรคltet till vรคnster klickar du pรฅ Databaser och sedan pรฅ Demo.
Steg 3) Skriv in frรฅgan i frรฅgeredigeraren:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price DESC;
Steg 4) Klicka pรฅ knappen Kรถr.
Det bรถr returnera fรถljande:
Union Alla
Steg 1) Logga in pรฅ ditt pgAdmin-konto.
Steg 2) I navigeringsfรคltet till vรคnster klickar du pรฅ Databaser och sedan pรฅ Demo.
Steg 3) Skriv in frรฅgan i frรฅgeredigeraren:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Steg 4) Klicka pรฅ knappen Kรถr.
Det bรถr returnera fรถljande:
SORTERA EFTER
UNION ALL-operatorn kan kombineras med ORDER BY-satsen fรถr att ordna resultat i resultatuppsรคttningen. Till exempel:
SELECT id FROM Book UNION ALL SELECT id FROM price ORDER BY id;
Kommandot returnerar fรถljande:
Resultaten รคr bestรคllda.
Ladda ner den databas som anvรคnds i denna handledning

















