PostgreSQL Union, Union ALL med eksempler

Indholdsfortegnelse:

Anonim

Hvad er PostgreSQL Union?

PostgreSQL UNION-operatøren bruges til at kombinere resultatsæt fra mere end en SELECT-sætning til et resultatsæt. Eventuelle duplikerede rækker fra resultaterne af SELECT-sætningerne elimineres. UNION-operatøren arbejder under to betingelser:

  • SELECT-forespørgsler SKAL returnere et lignende antal forespørgsler.
  • Datatyperne for alle tilsvarende kolonner skal være kompatible.

UNION-operatøren bruges normalt til at kombinere data fra relaterede tabeller, der ikke er blevet normaliseret perfekt.

I denne PostgreSQL-tutorial lærer du:

  • Hvad er PostgreSQL Union?
  • Syntaks
  • Union
  • Union All
  • BESTIL BY
  • Hvornår skal man bruge Union og hvornår skal man bruge Union all?
  • Brug af 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å ovenstående parametre:

Udtrykket_1, udtryk_2, ... udtryk_n er de beregninger eller kolonner, du skal hente.

Tabellerne er de tabeller, hvorfra du har brug for at hente poster.

WHERE-betingelserne er de betingelser, der skal være opfyldt for at registreringer kan hentes.

Bemærk: at da UNION-operatøren ikke returnerer duplikater, vil brugen af ​​UNION DISTINCT ikke have nogen indvirkning på resultaterne.

Union

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

Kommandoen returnerer følgende:

Id-kolonnen vises i både bog- og pristabellerne. Det vises dog kun en gang i resultatet. Årsagen er, at PostgreSQL UNION-operatøren ikke returnerer dubletter.

Union All

Denne operatør kombinerer resultatsæt fra mere end en SELECT-sætning uden at fjerne dubletter. Operatøren kræver, at hver SELECT-sætning har et tilsvarende antal felter i resultatsæt af 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å ovenstående parametre:

Udtrykket_1, udtryk_2, ... udtryk_n er de beregninger eller kolonner, du skal hente.

Tabellerne er de tabeller, hvorfra du har brug for at hente poster.

WHERE-betingelserne er de betingelser, der skal være opfyldt for at registreringer kan hentes.

Bemærk: Begge udtryk skal have samme antal udtryk.

Vi bruger følgende tabeller:

Bestil:

Pris:

Kør følgende kommando:

SELECT idFROM BookUNION ALLSELECT idFROM price;

Den skal returnere følgende:

Dubletterne er ikke fjernet.

BESTIL BY

PostgreSQL UNION-operatøren kan bruges sammen med ORDER BY-klausulen til at bestille forespørgselsresultaterne. For at demonstrere dette vil vi bruge følgende tabeller:

Pris:

Pris2:

Her er kommandoen, der demonstrerer, hvordan man bruger UNION-operatøren sammen med ORDER BY-klausulen:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price;

Kommandoen returnerer følgende:

Optegnelserne blev bestilt af priskolonnen. Klausulen bestiller som standard posterne i stigende rækkefølge. For at ordne dem i faldende rækkefølge skal du tilføje DESC-klausulen som vist nedenfor:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Kommandoen returnerer følgende:

Optegnelserne er bestilt baseret på priskolonnen i faldende rækkefølge.

Hvornår skal man bruge Union og hvornår skal man bruge Union all?

Brug UNION-operatøren, når du har flere tabeller med en lignende struktur, men opdelt af en grund. Det er godt, når du har brug for at fjerne / fjerne dublerede poster.

Brug UNION ALL-operatøren, når du ikke behøver at fjerne / eliminere duplikatposter.

Brug af pgAdmin

Lad os nu se, hvordan alle tre handlinger udføres ved hjælp af pgAdmin.

Union

For at opnå det samme gennem pgAdmin skal du gøre dette:

Trin 1) Log ind på din pgAdmin-konto.

Trin 2)

  1. Fra navigationslinjen til venstre - Klik på Databaser.
  2. Klik på Demo.

Trin 3) Skriv forespørgslen i forespørgselseditoren:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Trin 4) Klik på knappen Udfør.

Den skal returnere følgende:

Union All

Trin 1) Log ind på din pgAdmin-konto.

Trin 2)

  1. Klik på Databaser i navigationslinjen til venstre.
  2. Klik på Demo.

Trin 3) Skriv forespørgslen i forespørgselseditoren:

SELECT idFROM BookUNION ALLSELECT idFROM price;

Trin 4) Klik på knappen Udfør.

Den skal returnere følgende:

BESTIL BY

UNION ALL-operatøren kan kombineres med ORDER BY-klausulen for at bestille resultater i resultatsættet. For eksempel:

SELECT idFROM BookUNION ALLSELECT idFROM priceORDER BY id;

Kommandoen returnerer følgende:

Resultaterne er bestilt.

Resumé:

  • PostgreSQL UNION-operatøren kombinerer resultater fra mere end en SELECT-sætning i et resultatsæt.
  • UNION-operatøren returnerer ikke dubletter.
  • For at bestille resultaterne skal du kombinere det med ORDER BY-klausulen.
  • UNION ALL-operatøren kombinerer resultater fra mere end en SELECT-sætning i et resultatsæt.
  • UNION ALL-operatøren fjerner ikke dubletter.

Download den database, der blev brugt i denne vejledning