PostgreSQL Union, Union ALLE med eksempler
โก Smart oppsummering
PostgreSQL UNION kombinerer resultatene av to eller flere SELECT-setninger i ett enkelt resultatsett og fjerner dupliserte rader, mens UNION ALL beholder hver rad, noe som gir et raskere alternativ nรฅr duplikater ikke spiller noen rolle.

Hva er PostgreSQL Union?
Ocuco PostgreSQL UNION-operatoren brukes til รฅ kombinere resultatsett fra mer enn รฉn SELECT-setning til ett resultatsett. Eventuelle dupliserte rader fra resultatene av SELECT-setningene blir eliminert. UNION-operatรธren jobber under to forhold:
- SELECT-spรธrringene mรฅ returnere samme antall kolonner.
- Datatypene for alle tilsvarende kolonner mรฅ vรฆre kompatible.
UNION-operatoren brukes vanligvis til รฅ kombinere data fra relaterte tabeller som ikke er normalisert 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)];
Her er en forklaring pรฅ parameterne ovenfor:
Uttrykket_1, uttrykk_2, โฆ uttrykk_n er beregningene eller kolonnene du mรฅ hente.
Tabellene er tabellene du mรฅ hente poster fra.
WHERE-betingelsen(e) er betingelsene som mรฅ vรฆre oppfylt for at poster skal kunne hentes.
OBS: Siden UNION-operatoren ikke returnerer duplikater, vil bruken av UNION DISTINCT ikke ha noen innvirkning pรฅ resultatene.
PostgreSQL Union
UNION-operatoren fjerner duplikater, pรฅ samme mรฅte som VELG DISTINCT gjรธr. La oss demonstrere dette. Vi har en database som heter Demo med fรธlgende tabeller:
Bok:
Pris:
La oss kjรธre fรธlgende kommando:
SELECT id FROM Book UNION SELECT id FROM Price;
Kommandoen vil returnere fรธlgende:
ID-kolonnen vises i bรฅde bok- og pristabellen. Det vises imidlertid bare รฉn gang i resultatet. Grunnen er det PostgreSQL UNION-operatoren returnerer ikke duplikater.
PostgreSQL Union Alle
Denne operatoren kombinerer resultatsett fra mer enn รฉn SELECT-setning uten รฅ fjerne duplikater. Operatรธren krever at hver SELECT-setning har et lignende antall felt i resultatsett 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รฅ parameterne ovenfor:
Uttrykket_1, uttrykk_2, โฆ uttrykk_n er beregningene eller kolonnene du mรฅ hente.
Tabellene er tabellene du mรฅ hente poster fra.
WHERE-betingelsen(e) er betingelsene som mรฅ vรฆre oppfylt for at poster skal kunne hentes.
OBS: Begge SELECT-setningene mรฅ ha et likt antall uttrykk.
Vi vil bruke fรธlgende tabeller:
Bok:
Pris:
Kjรธr fรธlgende kommando:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Den skal returnere fรธlgende:
Duplikatene er ikke fjernet.
REKKEFรLGE ETTER
Ocuco PostgreSQL UNION-operatoren kan brukes sammen med ORDER BY-klausulen for รฅ bestille sรธkeresultatene. For รฅ demonstrere dette vil vi bruke fรธlgende tabeller:
Pris:
Pris 2:
Her er kommandoen som viser hvordan du bruker UNION-operatรธren sammen med ORDER BY-klausulen:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price;
Kommandoen vil returnere fรธlgende:
Postene ble sortert etter priskolonnen. Klausulen sorterer postene i stigende rekkefรธlge som standard. For รฅ bestille dem i synkende rekkefรธlge, legg til DESC-klausulen som vist nedenfor:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price DESC;
Kommandoen vil returnere fรธlgende:
Postene er sortert basert pรฅ priskolonnen i synkende rekkefรธlge.
Nรฅr skal man bruke Union og nรฅr skal man bruke Union All?
Bruk UNION-operatoren nรฅr du har flere tabeller med lignende struktur, men som er delt av en grunn. Den er nyttig nรฅr du trenger รฅ fjerne eller eliminere dupliserte poster.
Bruk UNION ALL-operatoren nรฅr du ikke trenger รฅ fjerne eller eliminere dupliserte poster.
Bruker pgAdmin
La oss nรฅ se hvordan alle tre handlingene utfรธres ved hjelp av pgAdmin.
Hvordan bruke PostgreSQL Union ved hjelp av pgAdmin
Fรธlgende er en trinnvis prosess for hvordan du bruker den PostgreSQL UNION gjennom pgAdmin:
Trinn 1) Logg pรฅ pgAdmin-kontoen din.
Trinn 2) Fra navigasjonslinjen til venstre klikker du pรฅ Databaser, og deretter pรฅ Demo.
Trinn 3) Skriv inn sรธket i spรธrringsredigeringsprogrammet:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price DESC;
Trinn 4) Klikk pรฅ Utfรธr-knappen.
Den skal returnere fรธlgende:
Union Alle
Trinn 1) Logg pรฅ pgAdmin-kontoen din.
Trinn 2) Fra navigasjonslinjen til venstre klikker du pรฅ Databaser, og deretter pรฅ Demo.
Trinn 3) Skriv inn sรธket i spรธrringsredigeringsprogrammet:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Trinn 4) Klikk pรฅ Utfรธr-knappen.
Den skal returnere fรธlgende:
REKKEFรLGE ETTER
UNION ALL-operatรธren kan kombineres med ORDER BY-klausulen for รฅ bestille resultater i resultatsettet. For eksempel:
SELECT id FROM Book UNION ALL SELECT id FROM price ORDER BY id;
Kommandoen vil returnere fรธlgende:
Resultatene er bestilt.
Last ned databasen som brukes i denne opplรฆringen

















