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:
- UNION-syntax
- UNION ALL-syntax
- Skillnader mellan UNION och UNION ALL
- SQL UNION Exempel:
- UNION-operatörsexempel
- Exempel på UNION ALL-operatör
- UNION med SQL-alias
- UNION med WHERE-sats
- UNION ALL with WHERE-sats
- UNION med JOINS
- 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.