UNION-Clausule
Veeg om het menu te tonen
Je hebt de aandacht getrokken van een klant die SQL-query's nodig heeft. Voordat je met JOINs aan de slag gaat, leer je eerst over de UNION-clausule, die essentieel is voor het combineren van meerdere tabellen.
UNION in SQL wordt gebruikt om de resultaten van twee of meer SELECT-query's te combineren tot één resultaatset. Hiermee kun je rijen uit meerdere query's samenvoegen tot één enkele resultaatset van gegevens.
Hier zijn enkele belangrijke zaken om te weten over het gebruik van UNION:
-
Aantal kolommen en volgorde: alle query's die met
UNIONworden gecombineerd, moeten hetzelfde aantal kolommen in dezelfde volgorde hebben; -
Gegevenstypen: de kolommen in elke query moeten compatibele gegevenstypen hebben;
-
Unieke rijen: standaard verwijdert
UNIONdubbele rijen. GebruikUNION ALLals je duplicaten wilt behouden.
Voor een beter begrip van hoe tabellen correct te combineren met de UNION-clausule is er een extra tabel geïntroduceerd die informatie bevat over contractors.
Er is hier niet veel informatie, alleen de first_name, last_name en email.
Je ziet dat deze tabel overeenkomsten vertoont met de employees-tabel. Met de UNION-clausule kun je deze twee tabellen combineren om bijvoorbeeld een lijst te zien van alle voor- en achternamen van employees en contractors die bij het bedrijf betrokken zijn.
Hiervoor gebruik je de UNION-clausule:
12345678(SELECT employee_id as id, first_name, last_name FROM employees) UNION (SELECT contractor_id as id, first_name, last_name FROM contractors) ORDER BY id
Er zijn twee queries die elk drie kolommen retourneren met dezelfde gegevenstypen. Het doel is om de Id, first_name en last_name van iedereen in het bedrijf te tonen. De kolom Id is ook hernoemd zodat beide queries dezelfde kolomnamen hebben.
Met UNION worden de resultaten van deze queries samengevoegd, waarbij dubbele waarden worden verwijderd (hoewel die hier niet voorkomen).
Ten slotte worden de resultaten gesorteerd op Id met behulp van ORDER BY.
De resultaten worden gesorteerd op Id, wat een gemeenschappelijke kolom is in beide tabellen.
Na het gebruik van UNION krijg je één "grote samengestelde query" die je verder kunt bewerken met clausules zoals ORDER BY.
Je kunt WHERE of GROUP BY niet direct gebruiken met tabellen die zijn gecombineerd met UNION. Om deze clausules toe te passen, moet je een subquery in het FROM-gedeelte gebruiken. Hier volgt een voorbeeld van hoe dit werkt:
123456789SELECT id, first_name, last_name FROM ( SELECT employee_id AS id, first_name, last_name FROM employees UNION SELECT contractor_id AS id, first_name, last_name FROM contractors ) AS combined WHERE first_name = 'Jane'
Het gebruik van een subquery in het FROM-gedeelte biedt meer flexibiliteit! Het kan in het begin lastig lijken, maar het beheersen hiervan maakt het schrijven van complexe queries veel eenvoudiger.
1. Aan welke vereisten moeten resultaatsets voldoen om gecombineerd te worden met UNION?
2. Hoe behandelt de UNION-clausule standaard dubbele rijen?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.