sql >> Databasteknik >  >> RDS >> Database

SQL Union – En omfattande guide om UNION-operatören

Medan vi hanterar data i databaser tenderar vi ofta att använda setoperatorerna i SQL, för att hämta data enligt våra krav genom att kombinera två eller flera SELECT-satser. I den här artikeln om SQL UNION kommer jag att diskutera UNION-operatorn som används för att hämta data i följande ordning:

  • Vad är SQL UNION-operatorn?
  • Syntax:
    1. UNION-syntax
    2. UNION ALL-syntax
  • Skillnader mellan UNION och UNION ALL
  • SQL UNION Exempel:
    1. UNION-operatörsexempel
    2. Exempel på UNION ALL-operatör
    3. UNION med SQL-alias
    4. UNION med WHERE-sats
    5. UNION ALL with WHERE-sats
    6. UNION med JOINS
    7. UNION ALL med JOINS

Låt oss komma igång!

Vad är SQL UNION-operatorn?

Som namnet antyder används denna operator/sats för att kombinera resultaten av två eller flera SELECT-satser. Här måste varje SELECT-sats som används inom UNION-satsen ha samma antal kolumner i samma ordning. Dessutom måste alla kolumner som finns i SELECT-satserna ha liknande datatyper.

UNION-satsen ger endast unika värden som utdata. Ifall du vill ha dubbletter av värden måste du använda UNION ALL-satsen.

Vi går vidare i den här artikeln om SQL UNION och låt oss förstå syntaxen.

SQL UNION-syntax

UNION-syntax

SELECT Column1, Column2, Column3, ..., ColumnN FROM Table1UNIONSELECT Column1, Column2, Column3, ..., ColumnN FROM Table2;

UNION ALL-syntax

SELECT Column1, Column2, Column3, ..., ColumnN FROM Table1UNION ALLSELECT Kolumn1, Column2, Column3, ..., ColumnN FROM Table2;

Gå vidare i den här artikeln, låt oss förstå skillnaderna mellan UNION och UNION ALL.

Skillnader mellan SQL UNION och UNION ALL

UNION UNION ALLA
Kombinerar två eller flera resultatuppsättningar och behåller inte dubblettvärdena. Kombinerar två eller flera resultatuppsättningar och behåller dubblettvärdena.
Syntax: UNION
Syntax: UNION ALLA

Låt oss sedan i den här artikeln om SQL UNION förstå de olika sätten att använda den här operatorn.

Exempel på SQL UNION och UNION ALL

För din bättre förståelse kommer jag att överväga följande tabeller för att visa dig olika exempel.

Medarbetartabell

EmpID Namn EmpAge Stad Postkod Land
1 Emma 23 Berlin 12109 Tyskland
2 Rahul 26 Mumbai 400015 Indien
3 Aayra 24 New York 10014 USA
4 John 32 London E1 7AE Storbritannien
5 Derek 29 New York 10012 USA

Projekttabell

Projekt-ID Namn Arbetsdagar Stad Postkod Land
1 Projekt 1 10 Berlin 12109 Tyskland
2 Projekt 2 7 Mumbai 400015 Indien
3 Projekt 3 20 Delhi 110006 Indien
4 Projekt 4 15 Mumbai 400015 Indien
5 Projekt 5 28 Berlin 12109 Tyskland

Låt oss börja med exempel.

SQL UNION-exempel

UNION-operatörsexempel

Skriv en fråga för att hämta distinkta städer från tabellen Anställda och projekt.

VÄLJ stad FRÅN AnställdaUNIONVÄLJ stad FRÅN projektORDER BY City;

Utdata:

Stad

Berlin

Delhi

London

Mumbai

New York

UNION ALL Operatörsexempel

Skriv en fråga för att hämta städer från tabellen Anställda och projekt. Här måste duplikatvärden inkluderas.

 VÄLJ ort FRÅN Anställda UNION ALLVÄLJ ort FRÅN projektORDER BY City; 

Utdata:

Stad

Berlin

Berlin

Berlin

Delhi

London

Mumbai

Mumbai

Mumbai

New York

New York

Låt oss härnäst i den här artikeln förstå hur man använder UNION-satsen med SQL-alias.

UNION med SQL-alias

SQL-alias används för att ge en tabell eller en kolumn ett tillfälligt namn. Så låt oss skriva en fråga för att lista alla unika anställda och projekt.

VÄLJ "Anställd" AS Typ, Namn, Stad, LandFROM AnställdaUNIONSELECT "Projekt", Namn, Stad, LandFROM Projekt;

Utdata:

Typ Namn Stad Land
Anställd Emma Berlin Tyskland
Anställd Rahul Mumbai Indien
Anställd Aayra New York USA
Anställd John London Storbritannien
Anställd Derek New York USA
Projekt Projekt 1 Berlin Tyskland
Projekt Projekt 2 Mumbai Indien
Projekt Projekt 3 Delhi Indien
Projekt Projekt 4 Mumbai Indien
Projekt Projekt 5 Berlin Tyskland

UNION med WHERE-sats

Skriv en fråga för att hämta de distinkta indiska städerna och deras postnummer från tabellen både anställda och projekt.

SELECT City, Postal Code, Country FROM EmployeesWHERE Country='India'UNIONSELECT City, Postal Code, Country FROM ProjectsWHERE Country='India'ORDER BY City;

Utdata:

Stad Postkod Land
Delhi 110006 Indien
Mumbai 400015 Indien

UNION ALL with WHERE-klausul

Skriv en fråga för att hämta indiska städer och deras postnummer från tabellen för både anställda och projekt, där dubbletter av värden är tillåtna

SELECT City, Postal Code, Country FROM EmployeesWHERE Country='India'UNION ALLSELECT City, Postal Code, Country FROM ProjectsWHERE Country='India'ORDER BY City;

Utdata:

Stad Postkod Land
Delhi 110006 Indien
Mumbai 400015 Indien
Mumbai 400015 Indien
Mumbai 400015 Indien

Låt oss gå vidare i den här artikeln, låt oss förstå hur man använder satserna UNION och UNION ALL med JOINS. JOINS i SQL är kommandon som används för att kombinera rader från två eller flera tabeller, baserat på en relaterad kolumn mellan dessa tabeller.

UNION med JOINS

SQL UNION-operatorn kan användas med SQL JOINS för att hämta data från två olika tabeller. Jag kommer att överväga följande tabell tillsammans med tabellen Anställda för exemplet.

Tabell ProjectDetails

PID Arbetsdagar EmpID Kostnad för projekt
11 12 4 20 000
22 16 3 35 000
33 30 1 60000
44 25 3 45 000
55 21 1 50 000
VÄLJ EmpID, Namn, CostforProject FRÅN Medarbetare VÄNSTER GÅ MED ProjectDetails PÅ Employees.EmpID =ProjectDetails.EmpIDUNION VÄLJ EmpID, Namn, CostforProject FRÅN Medarbetare HÖGER JOIN ProjectDetails PÅ Employees.EmpID =ProjectIDDetails;
. 

Utdata:

EmpID Namn CostforProject
1 Emma 60 000
1 Emma 50 000
2 Rahul NULL
3 Aayra 35 000
3 Aayra 45 000
4 John 20 000
5 Derek NULL

UNION ALLA med JOINS

Skriv en fråga för att hämta EmpID, Name och CostforProject från tabellen Employees and ProjectDetails, där dubbletter av värden är tillåtna.

VÄLJ EmpID, Namn, CostforProject FRÅN anställda VÄNSTER GÅ MED ProjectDetails PÅ Employees.EmpID =ProjectDetails.EmpIDUNION ALLA VÄLJ EmpID, Namn, CostforProject FRÅN anställda HÖGER GÅ MED ProjectDetails PÅ Employees.EmpID.> =ProjectDetails;

Utdata:

EmpID Namn CostforProject
1 Emma 60 000
1 Emma 50 000
2 Rahul NULL
3 Aayra 35 000
3 Aayra 45 000
4 John 20 000
5 Derek NULL
4 John 20 000
3 Aayra 35 000
1 Emma 60 000
3 Aayra 35 000
1 Emma 50 000

Med detta kommer jag till slutet av den här artikeln om SQL UNION. Jag hoppas att du tyckte om att läsa den här artikeln om SQL UNION. Vi har sett de olika sätten att använda kommandona UNION och UNION ALL för att hjälpa dig att skriva frågor. Om du vill lära dig mer om MySQL och lära känna denna relationsdatabas med öppen källkod, kolla in vår MySQL DBA Certifieringsutbildning som kommer med instruktörsledd liveutbildning och verklig projektupplevelse. Den här utbildningen hjälper dig att förstå MySQL på djupet och hjälper dig att bemästra ämnet.

Har du en fråga till oss? Vänligen nämn det i kommentarsfältet i "SQL UNION" så återkommer jag till dig.


  1. Fullständig lista över teckenuppsättningar som stöds av MariaDB

  2. Hur inaktiverar jag SQLAlchemy-cache?

  3. Steg för att ändra administratörslösenord som har förlorats eller glömts av en EBS WebLogic Domain R12.2

  4. Att få resultatet av dynamisk SQL till en variabel för sql-server