Operátor UNION slouží v SQL ke skládání nebo také sjednocení dotazů. Zkrátka, když chceme dva dotazy (SELECT) sloučit a tím získat výsledek v jedné tabulce.
Má to 2 zásadní podmínku, aby to fungovalo:
- Sjednocené dotazy musí mít stejný počet sloupců.
- Sloupce musí být stejného datového typu.
Ukázkové použití:
SELECT sloupec_1, sloupec_2
FROM tabulka_X
UNION
SELECT sloupec_1, sloupec_2
FROM tabulka_Y;
UNION funguje tak, že z výsledku vyřadí řádky, které jsou duplicitní. V sjednocené tabulce tedy získáme pouze unikátní výsledky.
To může být problém, představte si například sjednocujete tržby z tabulek pro dva různé roky a úplně vám vypadnou platby od lidí, kteří nakoupili stejné zboží v obou dvou letech.
Proto existuje operátor UNION ALL. Funguje úplně stejně. Jenom neodstraňuje duplicity a naopak vypíše úplně všechny záznamy.
SQL query je velmi podobný:
SELECT sloupec_1, sloupec_
FROM tabulka_X
UNION ALL
SELECT sloupec_1, sloupec_2
FROM tabulka_Y;
Kde se používá UNION
Operátor UNION se používá k sjednocení výsledků velmi podobných tabulek, které nejsou perfektně normalizované. Takových dat se v mnoha reportingovacích a data warehouse systémech nachází obvykle velmi mnoho.
Řazení výsledků
A jak je to s pořadím výsledků sjendocené tabulky? Ty se můžou libovolně promíchat. Ve výsledku máte prostě jednu jedinou tabulku (žádné dvě tabulky na sobě nebo něco podobného). Pro lepší přehlednost je samozřejmě nejlepší použít řazení pomocí ORDER BY.