UNION-Clausule
We hebben de aandacht getrokken van een klant die SQL-query's nodig heeft. Voordat we ingaan op JOINs, behandelen we eerst de UNION-clausule, die essentieel is voor het combineren van meerdere tabellen.
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 bevatten; -
Gegevenstypen: de kolommen in elke query moeten compatibele gegevenstypen hebben;
-
Unieke rijen: standaard verwijdert
UNIONdubbele rijen. GebruikUNION ALLals je duplicaten wilt behouden.
Om beter te begrijpen hoe tabellen correct te combineren met de UNION-clausule, heb ik een extra tabel geïntroduceerd met informatie 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 kunnen we deze twee tabellen combineren om bijvoorbeeld een lijst te zien van alle voor- en achternamen van werknemers en aannemers die bij het bedrijf betrokken zijn.
Hiervoor gebruiken we 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
Laten we uitleggen wat er gebeurt:
We hebben twee queries die elk drie kolommen met dezelfde gegevenstypen retourneren. We willen de Id, first_name en last_name van iedereen in het bedrijf zien. We hebben ook de kolom Id hernoemd zodat beide queries dezelfde kolomnamen hebben.
Vervolgens gebruiken we UNION om de resultaten van deze queries te combineren, waarbij dubbele waarden worden verwijderd (hoewel die er hier niet zijn).
Ten slotte sorteren we de resultaten op Id met behulp van ORDER BY.
Opmerking
We sorteren op
Id, een gemeenschappelijke kolom in beide tabellen.
Na het gebruik van UNION krijgen we één "grote samengestelde query" die we verder kunnen bewerken met clausules zoals ORDER BY.
Het is niet mogelijk om direct WHERE of GROUP BY te gebruiken met tabellen die zijn gecombineerd met UNION. Om deze clausules toe te passen, moet een subquery in het FROM-gedeelte worden gebruikt. Hier volgt een voorbeeld van hoe dit kan:
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. Dit kan in het begin lastig lijken, maar het beheersen hiervan maakt het schrijven van complexe queries aanzienlijk eenvoudiger.
1. Welke kolommen zijn vereist bij het gebruik van de UNION-clausule in SQL?
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.
Can you explain the difference between UNION and UNION ALL?
How do I know when to use a subquery with UNION?
Can you show more examples of using UNION with different tables?
Awesome!
Completion rate improved to 4
UNION-Clausule
Veeg om het menu te tonen
We hebben de aandacht getrokken van een klant die SQL-query's nodig heeft. Voordat we ingaan op JOINs, behandelen we eerst de UNION-clausule, die essentieel is voor het combineren van meerdere tabellen.
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 bevatten; -
Gegevenstypen: de kolommen in elke query moeten compatibele gegevenstypen hebben;
-
Unieke rijen: standaard verwijdert
UNIONdubbele rijen. GebruikUNION ALLals je duplicaten wilt behouden.
Om beter te begrijpen hoe tabellen correct te combineren met de UNION-clausule, heb ik een extra tabel geïntroduceerd met informatie 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 kunnen we deze twee tabellen combineren om bijvoorbeeld een lijst te zien van alle voor- en achternamen van werknemers en aannemers die bij het bedrijf betrokken zijn.
Hiervoor gebruiken we 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
Laten we uitleggen wat er gebeurt:
We hebben twee queries die elk drie kolommen met dezelfde gegevenstypen retourneren. We willen de Id, first_name en last_name van iedereen in het bedrijf zien. We hebben ook de kolom Id hernoemd zodat beide queries dezelfde kolomnamen hebben.
Vervolgens gebruiken we UNION om de resultaten van deze queries te combineren, waarbij dubbele waarden worden verwijderd (hoewel die er hier niet zijn).
Ten slotte sorteren we de resultaten op Id met behulp van ORDER BY.
Opmerking
We sorteren op
Id, een gemeenschappelijke kolom in beide tabellen.
Na het gebruik van UNION krijgen we één "grote samengestelde query" die we verder kunnen bewerken met clausules zoals ORDER BY.
Het is niet mogelijk om direct WHERE of GROUP BY te gebruiken met tabellen die zijn gecombineerd met UNION. Om deze clausules toe te passen, moet een subquery in het FROM-gedeelte worden gebruikt. Hier volgt een voorbeeld van hoe dit kan:
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. Dit kan in het begin lastig lijken, maar het beheersen hiervan maakt het schrijven van complexe queries aanzienlijk eenvoudiger.
1. Welke kolommen zijn vereist bij het gebruik van de UNION-clausule in SQL?
2. Hoe behandelt de UNION-clausule standaard dubbele rijen?
Bedankt voor je feedback!