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


















