Ga naar inhoud

Header

Data samenvoegen met UNION

Introductie

We hebben geleerd om diverse JOIN statements te gebruiken.

Daarbij combineerde je kolommen uit 2 tabellen.

We kijken nu naar het UNION statement:

Header

Hiermee combineer je uit 2 tabellen rijen in plaats van kolommen.




1. UNION uitleg

Stel we hebben 2 tabellen:

  • movies: Gegevens van films.
  • tv_shows: Gegevens van series.

Header

Voorbeelddata zou dan zijn:




1.1. Tabel movies

id name year rank
10920 Aliens 1986 8.2
17173 Animal House 1978 7.5
18979 Apollo 13 1995 7.5
... ... ... ...




1.2. Tabel tv_shows

id name year rank
12654 The Walking Dead 2010 8.2
16548 Breaking Bad 2008 9.5
18654 Game of Thrones 2011 9.2
... ... ... ...




1.3. Samenvoegen met UNION

Stel we willen een lijst van alle scores (rank) uit beide tabellen hebben.

Hiervoor kunnen we UNION gebruiken.

Dit zou je als volgt doen:

SELECT
  rank
FROM
  movies
UNION
SELECT
  rank
FROM
  tv_shows;
  • Je schrijft 2 SELECT statements.
    • 1 voor iedere tabel.
  • Je koppelt de selecties met UNION.

Dit geeft onderstaand resultaat:

rank
8.2
7.5
...
9.5
9.2
...

Let op: Dubbelingen worden verwijderd.




1.4. Samenvoegen met UNION ALL

UNION verwijdert alle dubbele rijen.

Wil je dit niet, gebruik dan UNION ALL

Dit zou je als volgt doen:

SELECT
  rank
FROM
  movies
UNION ALL
SELECT
  rank
FROM
  tv_shows;
  • Je schrijft 2 SELECT statements.
    • 1 voor iedere tabel.
  • Je koppelt de selecties met UNION.

Dit geeft onderstaand resultaat:

rank
8.2
7.5
7.5
...
8.2
9.5
9.2
...
  • UNION verwijdert dubbele rijen.
  • Beide selecties moeten evenveel kolommen hebben.
  • Kolommen in beide selecties moeten in dezelfde volgorde staan.
  • Kolommen in beide selecties moeten dezelfde datatypes hebben.




2. UNION voorbeeld

We kunnen een voorbeeld geven van UNION met tabel movies.

Header

We gaan 2 selecties uit de tabel samenvoegen met UNION.

Hierbij willen we scores van 7.5 en 9 samen gaan voegen.

SELECT
  rank
FROM
  movies
WHERE
  rank = 7.5
UNION
SELECT
  rank
FROM
  movies
WHERE
  rank = 9;
rank
9
7.5
Column: 1
Rows: 2

Je ziet het volgende:

  • Scores van films met cijfer 7.5 worden geselecteerd.
  • Scores van films met cijfer 9 worden geselecteerd.
  • Selecties worden samengevoegd met UNION.
    • Dubbele cijfers (rijen) worden verwijderd.




3. UNION ALL voorbeeld

We kunnen een voorbeeld geven van UNION ALL met tabel movies.

Header

We gaan 2 selecties uit de tabel samenvoegen met UNION.

Hierbij willen we scores van 7.5 en 9 samen gaan voegen.

SELECT
  rank
FROM
  movies
WHERE
  rank = 7.5
UNION ALL
SELECT
  rank
FROM
  movies
WHERE
  rank = 9;
rank
7.5
7.5
7.5
7.5
7.5
9
9
Column: 1
Rows: 7

Je ziet het volgende:

  • Scores van films met cijfer 7.5 worden geselecteerd.
  • Scores van films met cijfer 9 worden geselecteerd.
  • Selecties worden samengevoegd met UNION.
    • Dubbele cijfers (rijen) worden niet verwijderd.




Samenvatting

Header

  • Met JOIN statements combineer je kolommen uit tabellen.
  • Met het UNION statement combineer je rijen uit tabellen.
    • UNION verwijdert dubbele rijen.
    • Beide selecties moeten evenveel kolommen hebben.
    • Kolommen in beide selecties moeten in dezelfde volgorde staan.
    • Kolommen in beide selecties moeten dezelfde datatypes hebben.
  • UNION ALL verwijdert geen dubble rijen.