PostgreSQL Union, Union ALL med eksempler

Innholdsfortegnelse:

Anonim

Hva er PostgreSQL Union?

PostgreSQL UNION-operatøren brukes til å kombinere resultatsett fra mer enn en SELECT-setning til ett resultatsett. Eventuelle dupliserte rader fra resultatene av SELECT-setningene elimineres. UNION-operatøren jobber under to forhold:

  • SELECT-spørringene MÅ returnere et tilsvarende antall spørsmål.
  • Datatypene til alle tilsvarende kolonner må være kompatible.

UNION-operatøren brukes normalt til å kombinere data fra relaterte tabeller som ikke er normalisert perfekt.

I denne PostgreSQL-opplæringen lærer du:

  • Hva er PostgreSQL Union?
  • Syntaks
  • Union
  • Union All
  • REKKEFØLGE ETTER
  • Når skal jeg bruke Union og når skal jeg bruke Union all?
  • Bruke pgAdmin

Syntaks

SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNIONSELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)];

Her er en forklaring på parametrene ovenfor:

Expression_1, expression_2,… expression_n er beregningene eller kolonnene du trenger å hente.

Tabellene er tabellene som du trenger for å hente poster.

WHERE-betingelsen (e) er betingelsene som må oppfylles for at poster skal bli hentet.

Merk: at siden UNION-operatøren ikke returnerer duplikater, vil bruk av UNION DISTINCT ikke ha noen innvirkning på resultatene.

Union

UNION-operatøren fjerner duplikater. 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 idFROM BookUNIONSELECT idFROM Price;

Kommandoen vil returnere følgende:

ID-kolonnen vises i både Bok- og Pris-tabellene. Imidlertid vises det bare en gang i resultatet. Årsaken er at PostgreSQL UNION-operatøren ikke returnerer duplikater.

Union All

Denne operatøren kombinerer resultatsett fra mer enn én SELECT-setning uten å fjerne duplikater. Operatøren krever at hver SELECT-setning har et tilsvarende antall felt i resultatsett av lignende datatyper.

Syntaks:

SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNION ALLSELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)];

Her er en forklaring på parametrene ovenfor:

Expression_1, expression_2,… expression_n er beregningene eller kolonnene du trenger å hente.

Tabellene er tabellene som du trenger for å hente poster.

WHERE-betingelsen (e) er betingelsene som må oppfylles for at poster skal bli hentet.

Merk: Begge uttrykkene må ha like mange uttrykk.

Vi vil bruke følgende tabeller:

Bok:

Pris:

Kjør følgende kommando:

SELECT idFROM BookUNION ALLSELECT idFROM price;

Den skal returnere følgende:

Duplikatene er ikke fjernet.

REKKEFØLGE ETTER

PostgreSQL UNION-operatøren kan brukes sammen med ORDER BY-klausulen for å bestille søkeresultatene. For å demonstrere dette vil vi bruke følgende tabeller:

Pris:

Pris2:

Her er kommandoen som viser hvordan du bruker UNION-operatøren sammen med ORDER BY-setningen:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price;

Kommandoen vil returnere følgende:

Postene ble bestilt av priskolonnen. Klausulen ordner postene i stigende rekkefølge som standard. For å bestille dem i synkende rekkefølge, legg til DESC-setningen som vist nedenfor:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Kommandoen vil returnere følgende:

Postene er bestilt basert på priskolonnen i synkende rekkefølge.

Når skal jeg bruke Union og når skal jeg bruke Union all?

Bruk UNION-operatøren når du har flere tabeller med en lignende struktur, men delt av en grunn. Det er bra når du trenger å fjerne / eliminere dupliserte poster.

Bruk UNION ALL-operatøren når du ikke trenger å fjerne / eliminere duplikatposter.

Bruke pgAdmin

La oss nå se hvordan alle tre handlingene ble utført ved hjelp av pgAdmin.

Union

For å oppnå det samme gjennom pgAdmin, gjør du dette:

Trinn 1) Logg inn på pgAdmin-kontoen din.

Steg 2)

  1. Fra navigasjonslinjen til venstre - Klikk på Databaser.
  2. Klikk på Demo.

Trinn 3) Skriv inn spørringen i spørreeditoren:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Trinn 4) Klikk på Utfør-knappen.

Den skal returnere følgende:

Union All

Trinn 1) Logg inn på pgAdmin-kontoen din.

Steg 2)

  1. Klikk på Databaser fra navigeringslinjen til venstre.
  2. Klikk på Demo.

Trinn 3) Skriv inn spørringen i spørreeditoren:

SELECT idFROM BookUNION ALLSELECT idFROM 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 idFROM BookUNION ALLSELECT idFROM priceORDER BY id;

Kommandoen vil returnere følgende:

Resultatene er bestilt.

Sammendrag:

  • PostgreSQL UNION-operatøren kombinerer resultater fra mer enn én SELECT-setning i ett resultatsett.
  • UNION-operatøren returnerer ikke duplikatposter.
  • For å bestille resultatene, kombiner det med ORDER BY-setningen.
  • UNION ALL-operatøren kombinerer resultater fra mer enn én SELECT-setning i ett resultatsett.
  • UNION ALL-operatøren fjerner ikke duplikater.

Last ned databasen som brukes i denne veiledningen