sql >> Database >  >> RDS >> Database

SQL Union – Een uitgebreide gids over de UNION-operator

Bij het verwerken van gegevens in databases hebben we vaak de neiging om de set-operators in SQL te gebruiken om gegevens op te halen volgens onze vereisten door twee of meer SELECT-instructies te combineren. In dit artikel over SQL UNION bespreek ik de UNION-operator die wordt gebruikt om gegevens op te halen in de volgende volgorde:

  • Wat is de SQL UNION-operator?
  • Syntaxis:
    1. UNION-syntaxis
    2. UNION ALL-syntaxis
  • Verschillen tussen UNION en UNION ALL
  • SQL UNION-voorbeelden:
    1. UNION Operator-voorbeeld
    2. UNION ALL-operatorvoorbeeld
    3. UNION met SQL-aliassen
    4. UNION met WHERE-clausule
    5. UNION ALL met WHERE-clausule
    6. UNION met JOINS
    7. UNION ALL met JOINS

Laten we beginnen!

Wat is de SQL UNION-operator?

Zoals de naam al doet vermoeden, wordt deze operator/clausule gebruikt om de resultaten van twee of meer SELECT-instructies te combineren. Hier moet elke SELECT-instructie die in de UNION-instructie wordt gebruikt, hetzelfde aantal kolommen in dezelfde volgorde hebben. Ook moeten alle kolommen in de SELECT-instructies vergelijkbare gegevenstypen hebben.

De UNION-clausule geeft alleen unieke waarden als uitvoer. Voor het geval u dubbele waarden wilt, moet u de UNION ALL-clausule gebruiken.

Laten we verder gaan met dit artikel over SQL UNION en de syntaxis begrijpen.

SQL UNION-syntaxis

UNION-syntaxis

SELECT Column1, Column2, Column3, ..., ColumnN FROM Table1
UNION
SELECT Column1, Column2, Column3, ..., ColumnN FROM Table2;

UNION ALL-syntaxis

SELECT Column1, Column2, Column3, ..., ColumnN FROM Table1
UNION ALL
SELECT Column1, Column2, Column3, ..., ColumnN FROM Table2;

Laten we verder gaan in dit artikel en de verschillen tussen UNION en UNION ALL begrijpen.

Verschillen tussen SQL UNION en UNION ALL

UNION ALLES UNIE
Combineert twee of meer resultaatsets en behoudt de dubbele waarden niet. Combineert twee of meer resultaatsets en behoudt de dubbele waarden.
Syntax: UNION
Syntax: UNION ALL

Laten we vervolgens in dit artikel over SQL UNION de verschillende manieren om deze operator te gebruiken begrijpen.

Voorbeelden van SQL UNION en UNION ALL

Voor een beter begrip zal ik de volgende tabellen overwegen om u verschillende voorbeelden te laten zien.

Medewerkerstabel

EmpID Naam EmpAge Stad Postcode Land
1 Emma 23 Berlijn 12109 Duitsland
2 Rahul 26 Mumbai 400015 India
3 Aayra 24 New York 10014 VS
4 John 32 Londen E1 7AE VK
5 Derek 29 New York 10012 VS

Projectentabel

Project-ID Naam WorkingDays Stad Postcode Land
1 Project 1 10 Berlijn 12109 Duitsland
2 Project 2 7 Mumbai 400015 India
3 Project 3 20 Delhi 110006 India
4 Project 4 15 Mumbai 400015 India
5 Project 5 28 Berlijn 12109 Duitsland

Laten we beginnen met voorbeelden.

SQL UNION-voorbeelden

UNION-operatorvoorbeeld

Schrijf een query om verschillende steden op te halen uit de tabel Werknemers en Projecten.

SELECT City FROM Employees
UNION
SELECT City FROM Projects
ORDER BY City;

Uitvoer:

Stad

Berlijn

Delhi

Londen

Mumbai

New York

UNION ALL-operatorvoorbeeld

Schrijf een query om steden op te halen uit de tabel Werknemers en Projecten. Hier moeten dubbele waarden worden opgenomen.

 
SELECT City FROM Employees
UNION ALL
SELECT City FROM Projects
ORDER BY City; 

Uitvoer:

Stad

Berlijn

Berlijn

Berlijn

Delhi

Londen

Mumbai

Mumbai

Mumbai

New York

New York

Laten we in dit artikel eens kijken hoe we de UNION-clausule kunnen gebruiken met SQL-aliassen.

UNION met SQL-aliassen

SQL-aliassen worden gebruikt om een ​​tabel of kolom een ​​tijdelijke naam te geven. Laten we dus een zoekopdracht schrijven om alle unieke medewerkers en projecten op te sommen.

SELECT 'Employee' AS Type, Name, City, Country
FROM Employees
UNION
SELECT 'Project', Name, City, Country
FROM Projects;

Uitvoer:

Type Naam Stad Land
Werknemer Emma Berlijn Duitsland
Werknemer Rahul Mumbai India
Werknemer Aayra New York VS
Werknemer Jan Londen VK
Werknemer Derek New York VS
Project Project 1 Berlijn Duitsland
Project Project 2 Mumbai India
Project Project 3 Delhi India
Project Project 4 Mumbai India
Project Project 5 Berlijn Duitsland

UNION met WHERE-clausule

Schrijf een zoekopdracht om de verschillende Indiase steden en hun postcodes op te halen uit zowel de tabel Werknemers als Projecten.

SELECT City, PostalCode, Country FROM Employees
WHERE Country='India'
UNION
SELECT City, PostalCode, Country FROM Projects
WHERE Country='India'
ORDER BY City;

Uitvoer:

Stad Postcode Land
Delhi 110006 India
Mumbai 400015 India

UNION ALL met WHERE-clausule

Schrijf een zoekopdracht om Indiase steden en hun postcodes op te halen uit zowel de tabel Werknemers als Projecten, waar dubbele waarden zijn toegestaan

SELECT City, PostalCode, Country FROM Employees
WHERE Country='India'
UNION ALL
SELECT City, PostalCode, Country FROM Projects
WHERE Country='India'
ORDER BY City;

Uitvoer:

Stad Postcode Land
Delhi 110006 India
Mumbai 400015 India
Mumbai 400015 India
Mumbai 400015 India

Laten we verder gaan in dit artikel en laten we begrijpen hoe we de UNION- en UNION ALL-clausules met JOINS kunnen gebruiken. JOINS in SQL zijn opdrachten die worden gebruikt om rijen uit twee of meer tabellen te combineren, gebaseerd op een gerelateerde kolom tussen die tabellen.

UNION met JOINS

De SQL UNION-operator kan worden gebruikt met SQL JOINS om gegevens uit twee verschillende tabellen op te halen. Ik ga de volgende tabel samen met de tabel Werknemers als voorbeeld beschouwen.

Tabel ProjectDetails

PID WorkingDays EmpID CostforProject
11 12 4 20000
22 16 3 35000
33 30 1 60000
44 25 3 45000
55 21 1 50000
SELECT  EmpID, Name, CostforProject
   FROM Employees
   LEFT JOIN ProjectDetails
   ON Employees.EmpID = ProjectDetails.EmpID
UNION
   SELECT  EmpID, Name, CostforProject
   FROM Employees
   RIGHT JOIN ProjectDetails
   ON Employees.EmpID = ProjectDetails.EmpID;

Uitvoer:

EmpID Naam CostforProject
1 Emma 60000
1 Emma 50000
2 Rahul NULL
3 Aayra 35000
3 Aayra 45000
4 Jan 20000
5 Derek NULL

UNIE ALLES met JOINS

Schrijf een query om de EmpID, Name en CostforProject op te halen uit de tabel Employees en ProjectDetails, waar dubbele waarden zijn toegestaan.

SELECT  EmpID, Name, CostforProject
   FROM Employees
   LEFT JOIN ProjectDetails
   ON Employees.EmpID = ProjectDetails.EmpID
UNION ALL
   SELECT  EmpID, Name, CostforProject
   FROM Employees
   RIGHT JOIN ProjectDetails
   ON Employees.EmpID = ProjectDetails.EmpID;

Uitvoer:

EmpID Naam CostforProject
1 Emma 60000
1 Emma 50000
2 Rahul NULL
3 Aayra 35000
3 Aayra 45000
4 Jan 20000
5 Derek NULL
4 Jan 20000
3 Aayra 35000
1 Emma 60000
3 Aayra 35000
1 Emma 50000

Hiermee kom ik aan het einde van dit artikel over SQL UNION. Ik hoop dat je dit artikel over SQL UNION met plezier hebt gelezen. We hebben de verschillende manieren gezien om de opdrachten UNION en UNION ALL te gebruiken om u te helpen bij het schrijven van query's. Als u meer wilt weten over MySQL en deze open source relationele database wilt leren kennen, bekijk dan onze MySQL DBA Certificeringstraining die wordt geleverd met een door een instructeur geleide live training en real-life projectervaring. Deze training zal u helpen MySQL diepgaand te begrijpen en u te helpen het onderwerp onder de knie te krijgen.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van "SQL UNION" en ik neem contact met je op.


  1. De veel voorkomende MySQL-fout:"Er is een fout opgetreden bij het lezen van het communicatiepakket"

  2. PHP-waarschuwing:mysqli_connect():(HY000/2002):Verbinding geweigerd

  3. wat is gematerialiseerde weergaven in orakel?

  4. Slick 2.0 Generieke CRUD-bewerkingen