PostgreSQL Union, Union ALLE med eksempler
โก Smart opsummering
PostgreSQL UNION kombinerer resultaterne af to eller flere SELECT-sรฆtninger i et enkelt resultatsรฆt og fjerner dubletter, mens UNION ALL beholder alle rรฆkker, hvilket giver en hurtigere lรธsning, nรฅr dubletter ikke betyder noget.

Hvad er PostgreSQL Union?
PostgreSQL UNION-operatoren bruges til at kombinere resultatsรฆt fra mere end รฉn SELECT-sรฆtning til รฉt resultatsรฆt. Alle duplikerede rรฆkker fra resultaterne af SELECT-sรฆtningerne elimineres. UNION-operatรธren arbejder under to forhold:
- SELECT-forespรธrgsler skal returnere det samme antal kolonner.
- Datatyperne for alle tilsvarende kolonner skal vรฆre kompatible.
UNION-operatoren bruges normalt til at kombinere data fra relaterede tabeller, der ikke er blevet normaliseret perfekt.
Syntaks
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)];
Her er en forklaring pรฅ ovenstรฅende parametre:
Udtrykket_1, udtryk_2, โฆ udtryk_n er de beregninger eller kolonner, du skal hente.
Tabellerne er de tabeller, hvorfra du skal hente poster.
WHERE-betingelserne er de betingelser, der skal vรฆre opfyldt, for at registreringer kan hentes.
Bemรฆrk: Da UNION-operatoren ikke returnerer dubletter, vil brugen af โโUNION DISTINCT ikke have nogen indflydelse pรฅ resultaterne.
PostgreSQL Union
UNION-operatoren fjerner dubletter pรฅ samme mรฅde som VรLG DISTINKT gรธr. Lad os demonstrere dette. Vi har en database med navnet Demo med fรธlgende tabeller:
Bestil:
Pris:
Lad os kรธre fรธlgende kommando:
SELECT id FROM Book UNION SELECT id FROM Price;
Kommandoen returnerer fรธlgende:
Id-kolonnen vises i bรฅde bog- og pristabellerne. Det vises dog kun รฉn gang i resultatet. ร rsagen er det PostgreSQL UNION-operatoren returnerer ikke dubletter.
PostgreSQL Union Alle
Denne operator kombinerer resultatsรฆt fra mere end รฉn SELECT-sรฆtning uden at fjerne dubletter. Operatรธren krรฆver, at hver SELECT-sรฆtning har et tilsvarende antal felter i resultatsรฆt med lignende datatyper.
Syntaks:
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)];
Her er en forklaring pรฅ ovenstรฅende parametre:
Udtrykket_1, udtryk_2, โฆ udtryk_n er de beregninger eller kolonner, du skal hente.
Tabellerne er de tabeller, hvorfra du skal hente poster.
WHERE-betingelserne er de betingelser, der skal vรฆre opfyldt, for at registreringer kan hentes.
Bemรฆrk: Begge SELECT-sรฆtninger skal have et lige antal udtryk.
Vi vil bruge fรธlgende tabeller:
Bestil:
Pris:
Kรธr fรธlgende kommando:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Det skal returnere fรธlgende:
Dubletterne er ikke blevet fjernet.
BESTIL BY
PostgreSQL UNION-operatoren kan bruges sammen med ORDER BY-klausulen til at bestille forespรธrgselsresultaterne. For at demonstrere dette vil vi bruge fรธlgende tabeller:
Pris:
Pris 2:
Her er kommandoen, der viser, hvordan man bruger UNION-operatoren sammen med ORDER BY-sรฆtningen:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price;
Kommandoen returnerer fรธlgende:
Posterne blev sorteret efter priskolonnen. Klausulen sorterer som standard posterne i stigende rรฆkkefรธlge. For at bestille dem i faldende rรฆkkefรธlge skal du tilfรธje DESC-klausulen som vist nedenfor:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price DESC;
Kommandoen returnerer fรธlgende:
Posterne er sorteret ud fra priskolonnen i faldende rรฆkkefรธlge.
Hvornรฅr skal man bruge Union, og hvornรฅr skal man bruge Union All?
Brug UNION-operatoren, nรฅr du har flere tabeller med en lignende struktur, men som er opdelt af en grund. Den er god, nรฅr du har brug for at fjerne eller eliminere dubletter.
Brug UNION ALL-operatoren, nรฅr du ikke har brug for at fjerne eller eliminere dubletter.
Bruger pgAdmin
Lad os nu se, hvordan alle tre handlinger udfรธres ved hjรฆlp af pgAdmin.
Sรฅdan bruges den: PostgreSQL Union ved hjรฆlp af pgAdmin
Fรธlgende er en trin-for-trin proces til brug PostgreSQL UNION via pgAdmin:
Trin 1) Log ind pรฅ din pgAdmin-konto.
Trin 2) Klik pรฅ Databaser i navigationslinjen til venstre, og klik derefter pรฅ Demo.
Trin 3) Indtast forespรธrgslen i forespรธrgselseditoren:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price DESC;
Trin 4) Klik pรฅ knappen Udfรธr.
Det skal returnere fรธlgende:
Union Alle
Trin 1) Log ind pรฅ din pgAdmin-konto.
Trin 2) Klik pรฅ Databaser i navigationslinjen til venstre, og klik derefter pรฅ Demo.
Trin 3) Indtast forespรธrgslen i forespรธrgselseditoren:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Trin 4) Klik pรฅ knappen Udfรธr.
Det skal returnere fรธlgende:
BESTIL BY
UNION ALL-operatoren kan kombineres med ORDER BY-klausulen for at bestille resultater i resultatsรฆttet. For eksempel:
SELECT id FROM Book UNION ALL SELECT id FROM price ORDER BY id;
Kommandoen returnerer fรธlgende:
Resultaterne er bestilt.
Download databasen brugt i denne vejledning

















